586 Commits

Author SHA1 Message Date
Ertuğrul Erata 32a1f000c9 Merge pull request #377 from ertugerata/master
index.
2016-03-20 20:25:42 +02:00
Ertuğrul Erata 8f5c09f2a2 index . 2016-03-20 20:26:36 +02:00
Ertuğrul Erata 58e1411288 gcc need glibc-32bit for build emul32 2016-03-20 14:18:47 +02:00
Ertuğrul Erata c0bc7200dd change date 2016-03-20 11:09:23 +02:00
Ertuğrul Erata 59f671259f Merge pull request #375 from ertugerata/master
change date
2016-03-20 11:08:11 +02:00
Ertuğrul Erata 3586674412 Merge pull request #374 from ertugerata/master
fix patch
2016-03-20 11:04:25 +02:00
Ertuğrul Erata 1f648e2e3d fix patch 2016-03-20 11:03:52 +02:00
Ertuğrul Erata bdef3a6987 Merge pull request #373 from ertugerata/master
glibc rebuild
2016-03-20 10:46:04 +02:00
Ertuğrul Erata 427aaae438 check disabledi in emul32 2016-03-20 10:47:02 +02:00
Ertuğrul Erata fc6265b2cd gcc need glibc-32bit for build emul32 2016-03-20 10:17:03 +02:00
Ertuğrul Erata b0cf84138c Merge pull request #372 from ertugerata/master
check disabled.
2016-03-20 09:25:09 +02:00
Ertuğrul Erata d71c6f6ddc check disabled. 2016-03-20 09:26:30 +02:00
Ertuğrul Erata 29c5635cbf fix date 2016-03-20 00:20:18 +02:00
Ertuğrul Erata eb5e6b01e5 Merge pull request #370 from ertugerata/master
fix date
2016-03-20 00:19:00 +02:00
Ertuğrul Erata 6dd88f24f3 Merge pull request #369 from suvari/master
util-linux: clean unneeded conflicts..
2016-03-20 00:03:59 +02:00
suvari 29b2273272 util-linux: clean unneeded conflicts.. 2016-03-20 00:01:54 +02:00
Ertuğrul Erata 906bd17eef fix curl, remove conflicts 2016-03-20 00:01:33 +02:00
Ertuğrul Erata ca4749d8c1 Merge pull request #368 from ertugerata/master
fix curl, remove conflicts
2016-03-20 00:00:28 +02:00
Ertuğrul Erata 93a56271bf remove unneded conflict 2016-03-19 23:56:26 +02:00
Ertuğrul Erata 5635239f81 Merge pull request #367 from ertugerata/master
glibc fix
2016-03-19 23:55:34 +02:00
Ertuğrul Erata f16bec8882 remove ReleaseFrom 2016-03-19 23:42:04 +02:00
Ertuğrul Erata 3f0f88a9ca Merge pull request #366 from ertugerata/master
remove releaseFrom
2016-03-19 23:35:04 +02:00
Ertuğrul Erata 18ff8bc893 remove releaseFrom 2016-03-19 23:35:50 +02:00
Ertuğrul Erata 5aac946312 Merge pull request #365 from ertugerata/master
glibc-32bit need glibc-32bit ?
2016-03-19 22:57:57 +02:00
Ertuğrul Erata be78228a5a opps 2016-03-19 22:57:42 +02:00
Ertuğrul Erata c9410e45a1 Merge pull request #364 from suvari/master
libseccomp: fix dep.
2016-03-19 22:05:00 +02:00
suvari f9ad5a437b libseccomp: fix dep. 2016-03-19 22:03:28 +02:00
Ertuğrul Erata 853b331918 Merge branch 'master' of github.com:pisilinux/core 2016-03-19 21:51:37 +02:00
Ertuğrul Erata c13d5fc3fb Merge pull request #363 from suvari/master
xmlto: fix dep.
2016-03-19 21:49:09 +02:00
suvari de0b96496d xmlto: fix dep. 2016-03-19 21:47:32 +02:00
Ertuğrul Erata b60c309172 change binary repo 2016-03-19 20:37:48 +02:00
Ertuğrul Erata a3f3624c88 Merge pull request #362 from suvari/master
grub2 and patch: rebuild
2016-03-19 20:02:19 +02:00
suvari 047bfa2377 grub2 and patch: rebuild 2016-03-19 20:00:51 +02:00
Ertuğrul Erata c2bdc5df1b Merge pull request #361 from suvari/master
e2fsprogs: fix dep.
2016-03-19 19:55:38 +02:00
suvari 61d387aed2 e2fsprogs: fix dep. 2016-03-19 19:53:16 +02:00
Ertuğrul Erata e523c9775d Merge pull request #360 from ertugerata/master
dejavu-fonts moved to main-2
2016-03-18 21:53:39 +02:00
Ertuğrul Erata a407b1836a dejavu-fonts moved. 2016-03-18 21:54:36 +02:00
Ertuğrul Erata dfe171682e dejavu-fonts move to main 2016-03-18 21:52:01 +02:00
Ertuğrul Erata 2720fb24bc Merge pull request #359 from ertugerata/master
change distrub. name
2016-03-18 15:16:48 +02:00
Ertuğrul Erata e5b626d53f change distrub. name 2016-03-18 15:17:15 +02:00
Ertuğrul Erata d8c3821c44 Merge pull request #357 from ertugerata/master
Pisi-2.0Beta
2016-03-18 14:01:51 +02:00
Ertuğrul Erata 9b7d5347dc index . 2016-03-16 23:22:29 +02:00
Ertuğrul Erata 5d0b391958 history reset 2016-03-16 23:04:01 +02:00
Ertuğrul Erata ad2354af9c move p02 to p2 2016-03-16 23:00:56 +02:00
Ertuğrul Erata d6d2673367 rename distrib_name
Ankara Çiğdemi  // Crocus Ancyrensis
2016-03-16 22:57:11 +02:00
Ertuğrul Erata 91e62a26d1 ... 2016-03-16 22:43:05 +02:00
Ertuğrul Erata 0526800c60 Merge branch 'master' into 2Beta 2016-03-16 22:39:33 +02:00
Ertuğrul Erata df61fbb656 add apng patch 2016-03-16 22:25:43 +02:00
Ertuğrul Erata 435ce620dd Merge pull request #356 from ertugerata/master
add apng patch
2016-03-16 22:24:25 +02:00
Ertuğrul Erata 04db5935e5 works for beta 2016-03-16 22:23:58 +02:00
Ertuğrul Erata 0323d46185 Merge pull request #355 from ayhanyalcinsoy/master
devaju-fonts:moved core repo for pisi2.0
2016-03-15 16:53:58 +02:00
ayhanyalcinsoy 0c8b6239ea devaju-fonts:moved core repo for pisi2.0 2016-03-15 14:47:40 +02:00
Ertuğrul Erata 7e533bd274 Merge pull request #354 from ertugerata/master
lvm2 build in local options..
2016-03-14 14:42:09 +02:00
Ertuğrul Erata 3ae59cb640 opps... 2016-03-14 14:36:08 +02:00
Ertuğrul Erata 534a867d27 sync with local 2016-03-14 14:33:35 +02:00
Ertuğrul Erata ac8b15f941 remove for cyclic dep. 2016-03-14 11:09:00 +02:00
yusuf 58aa7d8106 Merge pull request #353 from aydemir/master
lvm2 add build dep device-mapper
2016-03-14 07:32:49 +02:00
aydemir ba8f85fddf lvm2 add build dep device-mapper 2016-03-14 07:28:55 +02:00
yusuf 73203806f7 Merge pull request #351 from alihanozturk/master
lvm2:pspec edit
2016-03-13 23:28:28 +02:00
yusuf df37ce58e8 Merge pull request #352 from aydemir/master
lvm2 add options
2016-03-13 23:27:46 +02:00
aydemir eb873abef2 lvm2 add options 2016-03-13 23:23:22 +02:00
alihanozturk 49aac9eb9a lvm2:pspec edit 2016-03-13 23:12:24 +02:00
Ertuğrul Erata eac6e867ee Merge pull request #350 from alihanozturk/master
mkinitramfs, grub2 rebuild
2016-03-13 22:59:43 +02:00
alihanozturk 755cd69665 grub2:rebild 2016-03-13 22:58:37 +02:00
alihanozturk 7cdccab690 mkinitramfs:rebuild 2016-03-13 22:56:26 +02:00
Ertuğrul Erata c954845709 Merge pull request #349 from alihanozturk/master
freetype:v.bump
2016-03-13 22:55:22 +02:00
alihanozturk 865b8a2e71 freetype:v.bump 2016-03-13 22:47:02 +02:00
Ertuğrul Erata ae831e39e4 Merge pull request #348 from ertugerata/master
lvm2 update
2016-03-13 22:14:25 +02:00
Ertuğrul Erata c2b61d34d3 lvm2 update 2016-03-13 22:15:37 +02:00
Ertuğrul Erata b25b25fd0e thin-provisioning-tools in core 2016-03-13 21:18:14 +02:00
Ertuğrul Erata 1c298c4643 Merge pull request #347 from ertugerata/master
thin-provisioning-tools in core
2016-03-13 21:17:09 +02:00
Ertuğrul Erata f25c6d5c10 Merge pull request #346 from ertugerata/master
mdadm update
2016-03-13 20:55:15 +02:00
Ertuğrul Erata b36558e537 mdadm update 2016-03-13 20:56:23 +02:00
Ertuğrul Erata 73d98e6d6f rebuild 2016-03-13 20:44:10 +02:00
Ertuğrul Erata 81fb85b5b1 Merge pull request #345 from ertugerata/master
rebuild
2016-03-13 20:44:05 +02:00
Ertuğrul Erata b58135abde xcb-proto rebuild 2016-03-13 20:37:30 +02:00
Ertuğrul Erata 620acb001f Merge pull request #344 from ertugerata/master
xcb-proto rebuild
2016-03-13 20:36:11 +02:00
Ertuğrul Erata 7eceeb29f3 add dep 2016-03-13 20:02:12 +02:00
Ertuğrul Erata e9dddc17c8 Merge pull request #343 from ertugerata/master
add dep
2016-03-13 20:01:24 +02:00
Ertuğrul Erata 52d2cdc27b disable patch 1 2016-03-13 19:50:26 +02:00
Ertuğrul Erata b165d9d9c0 Merge pull request #342 from ertugerata/master
disable patch 1
2016-03-13 19:49:12 +02:00
Ertuğrul Erata 963523c73b Merge pull request #341 from ertugerata/master
libpng and osprober update
2016-03-13 19:46:02 +02:00
Ertuğrul Erata 6d66594f1d libpng and osprober update 2016-03-13 19:47:13 +02:00
Ertuğrul Erata ec6c1fb00e update and fix 2016-03-13 19:42:14 +02:00
Ertuğrul Erata 866ca4388d Merge pull request #340 from ertugerata/master
update and fix
2016-03-13 19:41:02 +02:00
Ertuğrul Erata 1266e5d3ca Merge pull request #339 from ertugerata/master
update
2016-03-13 19:31:43 +02:00
Ertuğrul Erata 821a9f575c update 2016-03-13 19:32:54 +02:00
Ertuğrul Erata 7eb5b8fbf4 Merge pull request #338 from ertugerata/master
scons disable patches
2016-03-13 19:20:43 +02:00
Ertuğrul Erata a0d83e596c scons disable patches 2016-03-13 19:21:57 +02:00
Ertuğrul Erata 86f668d5bc Merge pull request #337 from ertugerata/master
rebuild
2016-03-13 19:18:10 +02:00
Ertuğrul Erata 447e3a1195 rebuild 2016-03-13 19:19:16 +02:00
Ertuğrul Erata a0480d797e scons update 2016-03-13 19:14:40 +02:00
Ertuğrul Erata 0547348250 Merge pull request #336 from ertugerata/master
scons update
2016-03-13 19:14:26 +02:00
Ertuğrul Erata f06c924365 rebuild 2016-03-13 19:00:35 +02:00
Ertuğrul Erata 7e6d2bebc8 Merge pull request #335 from ertugerata/master
rebuild
2016-03-13 18:59:13 +02:00
Ertuğrul Erata 1cfc2f7351 Merge pull request #334 from alihanozturk/master
libatomic_ops, gc rebuild
2016-03-13 18:54:22 +02:00
alihanozturk a3a15e26a3 gc:rebuild 2016-03-13 18:52:54 +02:00
alihanozturk 06f97a9389 libatomic_ops:Rebuild 2016-03-13 18:51:24 +02:00
Ertuğrul Erata 94a7c2c0af Merge pull request #333 from alihanozturk/master
dietlibc:rebild
2016-03-13 18:36:29 +02:00
alihanozturk bfa69a1582 dietlibc:rebild 2016-03-13 18:16:11 +02:00
Ertuğrul Erata 55bd254df3 Merge pull request #332 from alihanozturk/master
colorgcc:rebuild
2016-03-13 18:15:57 +02:00
alihanozturk 5138884db3 cython:rebuild 2016-03-13 18:14:19 +02:00
alihanozturk 65863316f9 colorgcc:rebuild 2016-03-13 18:11:57 +02:00
Ertuğrul Erata 44201998c0 Merge pull request #331 from ertugerata/master
add builddep
2016-03-13 14:40:49 +02:00
Ertuğrul Erata 24e7d2a6d6 add builddep 2016-03-13 14:41:28 +02:00
Ertuğrul Erata d2d8fd7493 Merge pull request #330 from ertugerata/master
xorg-util update
2016-03-13 14:30:43 +02:00
Ertuğrul Erata a8515a72b5 update 2016-03-13 14:31:03 +02:00
Ertuğrul Erata 5b8b967f0a unifdef 2016-03-13 14:22:16 +02:00
Ertuğrul Erata dbaa2fe5fb Merge pull request #329 from ertugerata/master
unifdef update
2016-03-13 14:21:58 +02:00
Ertuğrul Erata 4212b32778 Merge pull request #328 from alihanozturk/master
cmake:version bump
2016-03-13 13:49:37 +02:00
alihanozturk 79ba95c439 cmka:verson bump 2016-03-13 13:45:46 +02:00
Ertuğrul Erata 5ac5ac8295 Merge pull request #327 from alihanozturk/master
ppl:v.bump
2016-03-13 13:33:14 +02:00
alihanozturk d7f7ad6af5 libarchive:rebuild 2016-03-13 13:25:49 +02:00
alihanozturk 0da9dbc930 cloog:rebuild 2016-03-13 13:19:34 +02:00
alihanozturk b95c9b461f ppl:v.bump 2016-03-13 13:18:09 +02:00
Ertuğrul Erata f271d54c50 Merge pull request #326 from alihanozturk/master
glpk:version bump
2016-03-13 13:04:36 +02:00
alihanozturk d980345820 glpk:version bump 2016-03-13 12:55:48 +02:00
Ertuğrul Erata b012ae6dd0 Merge pull request #325 from ertugerata/master
index .
2016-03-13 12:52:55 +02:00
Ertuğrul Erata 0adbb89823 index . 2016-03-13 12:54:15 +02:00
Ertuğrul Erata 64e8627d40 Merge pull request #323 from alihanozturk/master
rsyslog:rebuild
2016-03-13 12:35:17 +02:00
alihanozturk c7851080e5 timezone:add patch and edit1 2016-03-13 11:24:12 +02:00
alihanozturk 7776feeb72 time:rebuild 2016-03-13 10:17:42 +02:00
alihanozturk 1b06417f59 tcp-wrappers:rebuild 2016-03-13 10:14:42 +02:00
alihanozturk 546e56a61a timezone:v.bump 2016-03-13 09:30:29 +02:00
Ertuğrul Erata 0e98d794ae Merge pull request #324 from ertugerata/master
fix url
2016-03-13 09:27:41 +02:00
Ertuğrul Erata c38a5a42da fix url 2016-03-13 09:28:52 +02:00
alihanozturk e3b085042c sysvinit:rebuild 2016-03-13 09:24:42 +02:00
alihanozturk d6323bcdef rsyslog:rebuild 2016-03-13 09:22:28 +02:00
Ertuğrul Erata 93a772de84 Merge pull request #322 from ertugerata/master
rebuild yacc
2016-03-13 09:10:39 +02:00
Ertuğrul Erata 79f3a710c7 rebuild yacc 2016-03-13 09:11:51 +02:00
Ertuğrul Erata bce8c6d9f3 Merge pull request #321 from ertugerata/master
rebuild
2016-03-13 09:05:53 +02:00
Ertuğrul Erata 5e8202f9bd rebuild
not: elfutils zlib-devel ister,
2016-03-13 09:06:26 +02:00
Ertuğrul Erata 009bf2d0f1 Merge pull request #320 from ertugerata/master
rebuild
2016-03-13 08:55:02 +02:00
Ertuğrul Erata 99c98859fa auto*, bison, flex rebuild 2016-03-13 08:56:10 +02:00
Ertuğrul Erata 416ac7ab19 sync with lfs 2016-03-13 08:48:01 +02:00
Ertuğrul Erata 3ce5223320 Merge pull request #319 from ertugerata/master
rebuild gnuconfig
2016-03-13 08:42:53 +02:00
Ertuğrul Erata 3c7c64a0a2 rebuild gnuconfig 2016-03-13 08:44:12 +02:00
Ertuğrul Erata c428523014 Merge pull request #318 from ertugerata/master
catbox rebuild
2016-03-13 08:38:42 +02:00
Ertuğrul Erata 77272d27c9 catbox rebuild 2016-03-13 08:40:06 +02:00
Ertuğrul Erata eb45c5e89b Merge pull request #317 from ertugerata/master
devel package rebuild...
2016-03-13 08:29:49 +02:00
Ertuğrul Erata 3236f442de devel package rebuild... 2016-03-13 08:31:03 +02:00
Ertuğrul Erata af01110734 index . 2016-03-13 07:33:22 +02:00
Ertuğrul Erata 00f1279015 Merge pull request #316 from ertugerata/master
glibc rebuild for i18n
2016-03-13 07:32:33 +02:00
Ertuğrul Erata 6523457941 glibc rebuild, for i18n 2016-03-13 07:31:23 +02:00
Ertuğrul Erata 528c770887 Merge pull request #315 from suvari/master
vixie-cron: rebuild for toolchain, fix source url
2016-03-11 20:38:27 +02:00
suvari f3f3e4a7e6 usbutils: rebuild for toolchain and update usb.ids 2016-03-11 19:28:11 +02:00
suvari ef9ef2c9ea shadow: rebuild for toolchain 2016-03-11 18:10:52 +02:00
suvari bb6fdc22ac vixie-cron: rebuild for toolchain, fix source url 2016-03-11 17:55:07 +02:00
Ertuğrul Erata a1e6327191 Merge pull request #314 from alihanozturk/master
comar:rebuild
2016-03-11 16:49:04 +02:00
alihanozturk 8e2c6eb4e2 mudur:rebuild 2016-03-11 16:40:18 +02:00
alihanozturk 00b5ae50ce piksemel:rebuild 2016-03-11 16:38:52 +02:00
alihanozturk 61246eabdb comar-api:rebuild 2016-03-11 16:37:45 +02:00
alihanozturk d9b904a5de comar:rebuild 2016-03-11 16:34:03 +02:00
Ertuğrul Erata c63acd2359 Merge pull request #313 from ertugerata/master
index .
2016-03-10 23:02:03 +02:00
Ertuğrul Erata 87e57ed058 index . 2016-03-10 23:02:59 +02:00
Ertuğrul Erata 46a7da4e20 Merge pull request #312 from ertugerata/master
rebuild, glib2 and dbus update and rebuilded....
2016-03-10 15:18:28 +02:00
Ertuğrul Erata 04cd2c9a0f rebuild ... 2016-03-10 15:17:41 +02:00
Ertuğrul Erata 6d8b27f22c rebuild too 2016-03-10 15:16:45 +02:00
Ertuğrul Erata c6b8f6db8f rebuild 2016-03-10 14:57:36 +02:00
yusuf b6468f44d5 Merge pull request #311 from alihanozturk/master
lsb-release:rebuild
2016-03-09 19:53:06 +02:00
alihanozturk 5eb42713c7 psmisc:rebuild 2016-03-09 19:11:45 +02:00
alihanozturk bf7b29bc93 procps:rebuild 2016-03-09 19:09:39 +02:00
alihanozturk 396741adc3 pcmciautils:rebuild 2016-03-09 19:03:34 +02:00
alihanozturk 177478a3a4 sysfsutils:rebuild 2016-03-09 18:57:59 +02:00
alihanozturk d7e1b684a8 nss-mdns:rebuild 2016-03-09 17:51:27 +02:00
alihanozturk b7f4e874f8 nettle:v.bump 2016-03-09 17:49:06 +02:00
alihanozturk 2afc467dbb net-tools:rebuild1 2016-03-09 17:37:00 +02:00
alihanozturk 6701e2f3e6 ncompress:rebuild 2016-03-09 17:33:41 +02:00
alihanozturk dfcbfbdef6 mingetty:rebuild add patch 2016-03-09 17:30:41 +02:00
alihanozturk 20032a3f2c man-pages:rebuild 2016-03-09 17:22:28 +02:00
alihanozturk 47cb10d3fe man-db:rebuild 2016-03-09 17:20:03 +02:00
alihanozturk 3f8bb78ad7 mailcap:v.bump 2016-03-09 16:49:39 +02:00
alihanozturk 89e6c84fd1 lzo:rebuild 2016-03-09 16:45:39 +02:00
alihanozturk 9b83391c72 lsb-release:rebuild 2016-03-09 16:43:47 +02:00
Ertuğrul Erata 571ddb7f77 rebuild 2016-03-09 15:27:28 +02:00
Ertuğrul Erata 4372bcc3a8 Merge pull request #310 from ertugerata/master
rebuild
2016-03-09 15:26:08 +02:00
Ertuğrul Erata 0056589c19 rebuild 2016-03-09 15:25:50 +02:00
Ertuğrul Erata 9546c43f46 Merge pull request #309 from ertugerata/master
fix real name,
2016-03-09 14:43:36 +02:00
Ertuğrul Erata 65382f4a38 fix real name, 2016-03-09 14:43:11 +02:00
Ertuğrul Erata 7e8f3ffb64 Merge pull request #308 from ertugerata/master
libunistring and spidermonkey link problem fixed.
2016-03-09 13:49:27 +02:00
Ertuğrul Erata 58c7a73854 fix 2016-03-09 13:47:34 +02:00
Ertuğrul Erata 41fa6e1058 link fix. 2016-03-09 13:46:33 +02:00
Ertuğrul Erata f8391725df Merge pull request #307 from ertugerata/master
Update actions.py
2016-03-08 23:38:53 +02:00
Ertuğrul Erata 546dc958f7 Update actions.py 2016-03-08 23:38:34 +02:00
Ertuğrul Erata 0a775a36cf Merge pull request #306 from alihanozturk/master
libuser:v.bump
2016-03-08 23:34:48 +02:00
alihanozturk f824aa6fe1 libuser:v.bump 2016-03-08 23:32:51 +02:00
Ertuğrul Erata 8eeb104919 Merge pull request #305 from ertugerata/master
spidermonkey dirty fix...
2016-03-08 23:32:26 +02:00
Ertuğrul Erata 6400b6b5e7 spidermonkey dirty fix... 2016-03-08 23:32:52 +02:00
Ertuğrul Erata 2efc116ebe Merge pull request #304 from alihanozturk/master
libunistring:lib linked
2016-03-08 23:27:55 +02:00
Ertuğrul Erata 995ed8f5ea Merge pull request #303 from alihanozturk/master
libusb-compact:rebuild
2016-03-08 23:25:38 +02:00
alihanozturk 839173fc99 libunistring:lib linked 2016-03-08 23:25:36 +02:00
alihanozturk 5e2fcb3c3e libusb-compact:rebuild 2016-03-08 23:12:45 +02:00
Ertuğrul Erata b0ff5790a2 Merge pull request #302 from alihanozturk/master
libusb:v.bump
2016-03-08 23:08:37 +02:00
alihanozturk 9d5a33130c libusb:v.bump 2016-03-08 23:07:27 +02:00
Ertuğrul Erata 4dfb38ad78 Merge pull request #301 from alihanozturk/master
libpipeline:rebuild
2016-03-08 22:57:20 +02:00
alihanozturk 501de28c4b libunistring:v.bump 2016-03-08 22:42:28 +02:00
alihanozturk 8bb6d0d6de libssh2:v.bump 2016-03-08 22:33:53 +02:00
alihanozturk 107f887f03 libpipeline:rebuild 2016-03-08 22:07:47 +02:00
Ertuğrul Erata 4392dbbb76 Merge pull request #278 from hknyldz/master
dbus upgraded
2016-03-08 21:20:10 +02:00
Ertuğrul Erata 70899c7012 Merge pull request #300 from alihanozturk/master
xtrans:rebuild
2016-03-08 20:54:52 +02:00
alihanozturk 4f0b8e8221 xorg-proto:rebuild 2016-03-08 20:50:28 +02:00
alihanozturk 07dc39bb62 libxslt:rebuild 2016-03-08 20:49:13 +02:00
alihanozturk 8c4503de28 xtrans:rebuild 2016-03-08 20:42:40 +02:00
Ertuğrul Erata 2472956725 Merge pull request #299 from ertugerata/master
index
2016-03-08 20:28:05 +02:00
Ertuğrul Erata 58b80e879f index 2016-03-08 20:28:51 +02:00
Ertuğrul Erata be465f43df Merge pull request #298 from alihanozturk/master
liblogging:version bump
2016-03-08 20:27:25 +02:00
alihanozturk e0c1e9380b liblogging:version bump 2016-03-08 20:25:36 +02:00
Ertuğrul Erata 7dba91840c Merge pull request #297 from alihanozturk/master
dbus-python:v.bump
2016-03-08 20:17:19 +02:00
alihanozturk 3bac61b08f libidn:version bump 2016-03-08 20:11:24 +02:00
alihanozturk 44525139ef cryptsetup:version bump 2016-03-08 20:01:55 +02:00
alihanozturk eb8a3ddb89 popt:rebuild 2016-03-08 19:55:57 +02:00
alihanozturk 5cf0084dcc libgcrypt:version bump 2016-03-08 19:50:38 +02:00
alihanozturk 1c4027af07 libgpg-error:version bump 2016-03-08 19:28:37 +02:00
alihanozturk 021befddbb libee:rebuild 2016-03-08 19:25:52 +02:00
alihanozturk 4e9a685d10 libestr:v.bump 2016-03-08 19:24:04 +02:00
alihanozturk 78a082d8c8 kbd:rebuild 2016-03-08 19:06:32 +02:00
alihanozturk a8080566bc json-c:rebuild 2016-03-08 19:01:58 +02:00
alihanozturk 7aadd3fd1e help2man:version bump 2016-03-08 18:58:56 +02:00
alihanozturk b81e27741e groff:rebuild 2016-03-08 18:50:21 +02:00
alihanozturk 86b4c99dbd dhcpcd:rebuild 2016-03-08 18:42:56 +02:00
alihanozturk 95a347fcd9 dbus-python:v.bump 2016-03-08 18:40:42 +02:00
Ertuğrul Erata 69097961dd Merge pull request #296 from ayhanyalcinsoy/master
spidermonkey:fixed
2016-03-08 10:06:22 +02:00
ayhanyalcinsoy ec3cdeec72 spidermonkey:fixed typo 2016-03-08 09:57:08 +02:00
Ertuğrul Erata a64280c458 Merge pull request #293 from alihanozturk/master
nspr:pspec fixed
2016-03-08 09:47:43 +02:00
ayhanyalcinsoy 141d87bde1 spidermonkey:fixed 2016-03-08 07:35:37 +02:00
Ertuğrul Erata 14f3012a6b Merge pull request #295 from ertugerata/master
fix static lib name too
2016-03-07 21:07:45 +02:00
Ertuğrul Erata 7697af8107 fix static lib name too 2016-03-07 21:06:43 +02:00
Ertuğrul Erata 678bc103b0 Merge pull request #294 from ertugerata/master
fix source type
2016-03-07 20:42:52 +02:00
Ertuğrul Erata 2b8e4e9377 ifix source type 2016-03-07 20:43:24 +02:00
alihanozturk 48a8067c42 nspr:pspec fixed 2016-03-07 19:11:30 +02:00
Ertuğrul Erata 316e0e2cfc Merge pull request #292 from ayhanyalcinsoy/master
spidermonkey:fixed file and folder name
2016-03-07 17:25:55 +02:00
ayhanyalcinsoy 711f474f84 Merge branch 'master' of https://github.com/pisilinux/core 2016-03-07 17:19:30 +02:00
ayhanyalcinsoy 10d0939b37 spidermonkey:fixed folder and file name 2016-03-07 17:16:16 +02:00
Ertuğrul Erata 24276f1290 Merge pull request #290 from ayhanyalcinsoy/master
nspr:v.bump to 4.12
2016-03-07 16:54:14 +02:00
ayhanyalcinsoy 57ab1c1d31 Merge branch 'master' of https://github.com/pisilinux/core 2016-03-07 16:43:16 +02:00
ayhanyalcinsoy f141fdd9a9 nspr:v.bump to 4.12 2016-03-07 16:38:15 +02:00
Ertuğrul Erata 7e29b41e5a Merge pull request #289 from ertugerata/master
indent fixed.
2016-03-07 16:26:16 +02:00
Ertuğrul Erata 721399c49b indent fixed. 2016-03-07 16:25:57 +02:00
Ertuğrul Erata 4185da5fa1 Merge pull request #288 from ertugerata/master
sync with lfs build
2016-03-07 16:21:28 +02:00
Ertuğrul Erata bcc692d8b8 sync with lfs build 2016-03-07 16:20:29 +02:00
Ertuğrul Erata cc1b8f6592 Merge pull request #287 from ertugerata/master
update
2016-03-07 15:37:10 +02:00
Ertuğrul Erata 738413ae9f update 2016-03-07 15:36:17 +02:00
Ertuğrul Erata f55bde1d3d Merge pull request #286 from ertugerata/master
klibc rebuild
2016-03-07 15:09:19 +02:00
Ertuğrul Erata 364fa8ffc1 klibc rebuild 2016-03-07 15:08:53 +02:00
Ertuğrul Erata 3c2a8f0897 yasm verbump 2016-03-07 14:54:15 +02:00
Ertuğrul Erata c87b2863e7 Merge pull request #285 from ertugerata/master
rebuild busybox
2016-03-07 14:33:07 +02:00
Ertuğrul Erata 5751eb005d rebuild busybox 2016-03-07 14:32:47 +02:00
Ertuğrul Erata 7e16c2c29e Merge pull request #284 from suvari/master
core drivers: rebuild for kernel 4.4.4
2016-03-07 00:29:58 +02:00
suvari 648543110c core drivers: rebuild for kernel 4.4.4 2016-03-07 00:12:56 +02:00
Ertuğrul Erata 709254f9cb Merge pull request #283 from ertugerata/master
rebuild for new perl
2016-03-06 22:50:26 +02:00
Ertuğrul Erata 4ffecd7335 rebuild for new perl 2016-03-06 22:50:05 +02:00
Ertuğrul Erata 9dc722bc28 Merge pull request #282 from ertugerata/master
cpupowertools update
2016-03-06 17:43:21 +02:00
Ertuğrul Erata 8287dda6df cpupowertools update 2016-03-06 17:44:13 +02:00
Ertuğrul Erata 13ba84bf98 Merge pull request #281 from ertugerata/master
spidermonkey rebuild
2016-03-06 11:11:35 +02:00
Ertuğrul Erata 1e8f715275 spidermonkey rebuild 2016-03-06 11:12:38 +02:00
Ertuğrul Erata ce64249568 rebuild too 2016-03-06 11:03:18 +02:00
Ertuğrul Erata bade5dfdee Merge pull request #280 from ertugerata/master
rebuild nspr, baselayout and biosdevname
2016-03-06 11:02:39 +02:00
Ertuğrul Erata 0a47eb9ddb rebuild 2016-03-06 11:00:50 +02:00
Ertuğrul Erata 59c829bb76 index. 2016-03-06 09:41:54 +02:00
Ertuğrul Erata e4ed898c54 Merge pull request #279 from ertugerata/master
Kernel 4.4.4
2016-03-06 09:40:48 +02:00
Ertuğrul Erata ce4ce6411f For kernel-4.4.4 2016-03-06 08:05:59 +02:00
Ertuğrul Erata 32fa562020 Merge branch 'master' into kernel-4.4 2016-03-06 07:11:11 +02:00
Ertuğrul Erata a7f1e5f933 Merge pull request #277 from ayhanyalcinsoy/master
fuse:v.bump to 2.9.5
2016-03-05 23:29:23 +02:00
pisili 390d046d7d dbus upgraded 2016-03-05 22:11:16 +02:00
ayhanyalcinsoy 65a9d40991 alternatives:moved into main repo 2016-03-05 20:59:17 +02:00
ayhanyalcinsoy 1a35ac648e fuse:v.bump to 2.9.5 2016-03-05 20:10:51 +02:00
Ertuğrul Erata 920ce42b00 Merge pull request #276 from alihanozturk/master
gperf,chrpath,kmod,eudev,e2fsprogs rebuild
2016-03-05 19:09:56 +02:00
alihanozturk b093b0dfcc e2fsprogs:rebuild 2016-03-05 13:32:23 +02:00
alihanozturk 58cf25fd7c eudev:rebuild 2016-03-05 13:26:12 +02:00
alihanozturk 02a6245435 kmod:rebuild 2016-03-05 13:23:05 +02:00
alihanozturk 687ac46cf5 chrpath:rebuild 2016-03-05 13:20:35 +02:00
alihanozturk 8d6d9c5e70 gperf:rebuild 2016-03-05 13:18:40 +02:00
yusuf c32a4b10d3 Merge pull request #275 from alihanozturk/master
v86d:rebuild
2016-03-05 13:16:25 +02:00
alihanozturk d413b6a03f pam:add build dep 2016-03-05 13:14:39 +02:00
alihanozturk 6559e87c73 pam:v.bump 2016-03-05 13:13:18 +02:00
alihanozturk 1f89469c62 v86d:rebuild 2016-03-05 12:12:19 +02:00
Ertuğrul Erata ab3157ba00 Merge pull request #274 from ertugerata/master
fix source url
2016-03-05 07:56:47 +02:00
Ertuğrul Erata 862d99947c fix source url 2016-03-05 07:57:41 +02:00
Ertuğrul Erata 6ce974eb7b fix 2016-03-05 07:40:58 +02:00
Ertuğrul Erata 72b51f98d9 Merge pull request #273 from ertugerata/master
fix
2016-03-05 07:39:53 +02:00
Ertuğrul Erata c968e79356 rebuild 2016-03-05 07:36:18 +02:00
Ertuğrul Erata 7d44e4db2f Merge pull request #272 from ertugerata/master
rebuild
2016-03-05 07:35:23 +02:00
Ertuğrul Erata b2efe66b71 Merge pull request #271 from ertugerata/master
rebuild bc
2016-03-05 07:16:12 +02:00
Ertuğrul Erata 6e0473f884 bc rebuild 2016-03-05 07:15:56 +02:00
Ertuğrul Erata 55588de248 rebuild 2016-03-05 07:13:28 +02:00
Ertuğrul Erata bfdc436466 rebuild 2016-03-05 07:12:19 +02:00
Ertuğrul Erata 1befbd4b0c rebuild, update release 2016-03-05 07:11:30 +02:00
Ertuğrul Erata e5f5b4a5d4 Merge pull request #270 from ertugerata/master
index now.
2016-03-05 07:02:19 +02:00
Ertuğrul Erata 78401aad73 index now. 2016-03-05 06:57:46 +02:00
Ertuğrul Erata b2d20ef048 Merge pull request #269 from ertugerata/master
revert
2016-03-04 22:00:24 +02:00
Ertuğrul Erata 27fb7740ce revert 2016-03-04 21:58:55 +02:00
Ertuğrul Erata 974a85caa6 Merge pull request #268 from ertugerata/master
use http
2016-03-04 21:41:30 +02:00
Ertuğrul Erata 5d3d7416ef use http 2016-03-04 21:40:31 +02:00
Ertuğrul Erata 0994dfb5f0 Merge pull request #267 from alihanozturk/master
libxml2:v.bump
2016-03-04 21:25:02 +02:00
alihanozturk 2b18b68adc libxml2:v.bump 2016-03-04 17:00:04 +02:00
Ertuğrul Erata b4d36e9b61 Merge pull request #266 from ertugerata/master
rebuild
2016-03-04 13:58:31 +02:00
Ertuğrul Erata bb1d1c848b rebuild 2016-03-04 13:58:10 +02:00
Ertuğrul Erata 359058d10e fix workdir 2016-03-03 21:26:44 +02:00
Ertuğrul Erata 52439cac64 Merge pull request #265 from ertugerata/master
fix workdir
2016-03-03 21:26:17 +02:00
Ertuğrul Erata 2d954356a4 Merge pull request #264 from ertugerata/master
python programs rebuild
2016-03-03 19:51:33 +02:00
Ertuğrul Erata 385e12c39f python programs rebuild 2016-03-03 19:51:13 +02:00
Ertuğrul Erata eb8bda6d03 version bump 2016-03-03 19:44:57 +02:00
Ertuğrul Erata 3cefd3f110 Merge pull request #263 from ertugerata/master
update
2016-03-03 19:43:56 +02:00
Ertuğrul Erata 42fb355a6c Merge branch 'master' of github.com:pisilinux/core 2016-03-03 19:39:17 +02:00
Ertuğrul Erata 2dd2f1ec6b Merge pull request #262 from alihanozturk/master
run-parts:v.bump, ca-certificates:rebuild, miscfiles:rebuild, cracklib:v.bump, dbus:rebuild, dbus-glib:rebuild, pciutils:pci.ids update, libcap-ng:v.bump
2016-03-03 19:37:02 +02:00
alihanozturk 81df203067 libcap-ng:version bump 2016-03-03 19:05:27 +02:00
alihanozturk 5f211c234f pciutils:pci.ids update 2016-03-03 18:42:02 +02:00
alihanozturk 3bcaa8f458 dbus-glib:rebuild 2016-03-03 16:49:43 +02:00
alihanozturk 488dc5ab78 dbus:rebuil 2016-03-03 16:48:23 +02:00
alihanozturk 8ec287fb1b cracklib:v.bump 2016-03-03 16:36:08 +02:00
alihanozturk 777d66d2fb miscfiles:rebuild 2016-03-03 16:17:36 +02:00
alihanozturk 264a67a961 ca-certificates:rebuild 2016-03-03 16:11:53 +02:00
alihanozturk c9b38a3b99 run-parts:v.bump 2016-03-03 16:07:02 +02:00
Ertuğrul Erata 498e9e5e2d plyel update 2016-03-03 00:23:25 +02:00
Ertuğrul Erata dc8a9bf81f Merge pull request #261 from ertugerata/master
perl update ,
2016-03-03 00:04:11 +02:00
Ertuğrul Erata 077abbb696 perl update ,
check disabled...
2016-03-03 00:04:12 +02:00
Ertuğrul Erata 3db7cda2f5 Merge pull request #260 from ertugerata/master
rebuild
2016-03-02 23:11:19 +02:00
Ertuğrul Erata 82989f93ab rebuild 2016-03-02 23:12:36 +02:00
Ertuğrul Erata ddf6d1d028 Merge pull request #259 from ertugerata/master
leveldb rebuild
2016-03-02 23:06:14 +02:00
Ertuğrul Erata f34464bb8d leveldb rebuild 2016-03-02 23:00:50 +02:00
Ertuğrul Erata 65d57a20a1 Merge pull request #258 from ertugerata/master
gperftools revert, libunwind rebuild
2016-03-02 22:55:45 +02:00
Ertuğrul Erata 1dc77ca13f gperftools revert, libunwind rebuild 2016-03-02 22:53:01 +02:00
Ertuğrul Erata af3e7f0a3c gperftools update 2016-03-02 22:41:54 +02:00
Ertuğrul Erata ac31a8c4c1 Merge pull request #257 from ertugerata/master
gperftools update
2016-03-02 22:40:46 +02:00
Ertuğrul Erata 34a9716ea3 snappy update 2016-03-02 22:37:49 +02:00
Ertuğrul Erata e77046dbcd Merge pull request #256 from ertugerata/master
snappy update
2016-03-02 22:36:48 +02:00
Ertuğrul Erata 8b6b9a096d db version bump 2016-03-02 22:23:55 +02:00
Ertuğrul Erata c6eea8f663 Merge pull request #255 from ertugerata/master
db version bump
2016-03-02 22:23:01 +02:00
Ertuğrul Erata 18f33d9b55 fix source 2016-03-02 22:16:27 +02:00
Ertuğrul Erata a26c5378cd Merge pull request #254 from ertugerata/master
fix source
2016-03-02 22:15:42 +02:00
Ertuğrul Erata d5bfcc9d3f Merge pull request #253 from ertugerata/master
zip rebuild
2016-03-02 22:11:18 +02:00
Ertuğrul Erata 7e1320a776 zip rebuild 2016-03-02 22:12:29 +02:00
Ertuğrul Erata ca43715fc4 Merge pull request #252 from ertugerata/master
curl and python update
2016-03-02 21:55:26 +02:00
Ertuğrul Erata 991403386f python update 2016-03-02 21:55:52 +02:00
Ertuğrul Erata 2a52fa273e curl verbump 2016-03-02 21:47:16 +02:00
Ertuğrul Erata 1023cd62a5 Merge pull request #251 from ertugerata/master
openssl fix build.
2016-03-02 21:01:14 +02:00
Ertuğrul Erata 8a12e3cf6f openssl fix build. 2016-03-02 21:02:17 +02:00
Ertuğrul Erata 59d3aca6ec Merge pull request #247 from alihanozturk/master
which:release bump
2016-03-02 20:53:49 +02:00
Ertuğrul Erata c3ff4e3209 Merge pull request #250 from ertugerata/master
opps, version bump
2016-03-02 20:41:16 +02:00
Ertuğrul Erata 9de67f92ea opps, version bump 2016-03-02 20:42:05 +02:00
Ertuğrul Erata 75df24e91f openssl fix 2016-03-02 20:32:00 +02:00
Ertuğrul Erata e9cc4d98ac Merge pull request #249 from ertugerata/master
openssl fix
2016-03-02 20:31:08 +02:00
alihanozturk d9814459da sqlite:v.bump 2016-03-02 18:54:39 +02:00
alihanozturk 889b337ca5 util-macros:rebuild 2016-03-02 17:54:09 +02:00
alihanozturk c75d067555 numactl:version bump 2016-03-02 17:51:16 +02:00
alihanozturk fce67a7e00 which:release bump 2016-03-02 16:58:52 +02:00
Ertuğrul Erata c2a99fbd54 Merge pull request #246 from ayhanyalcinsoy/master
openssl:version bump to 1.0.2f
2016-03-02 16:32:04 +02:00
Ertuğrul Erata 45454cd135 Merge pull request #245 from ertugerata/master
gdbm rebuild
2016-03-02 15:27:16 +02:00
Ertuğrul Erata e26337818b update release 2016-03-02 15:26:38 +02:00
Ertuğrul Erata c66719d202 gdbm rebuild 2016-03-02 15:25:25 +02:00
Ertuğrul Erata 248802fc63 Merge pull request #244 from ertugerata/master
expat rebuild
2016-03-02 15:10:33 +02:00
Ertuğrul Erata 1396b50398 Added files via upload 2016-03-02 15:09:29 +02:00
Ertuğrul Erata ab24079483 Merge pull request #243 from ertugerata/master
update libcap
2016-03-02 14:31:44 +02:00
ayhanyalcinsoy 30f8abdc47 openssl:version bump to 1.0.2f 2016-03-02 14:27:30 +02:00
Ertuğrul Erata c592a4b091 update libcap 2016-03-02 14:22:35 +02:00
Ertuğrul Erata 7dd49c81e7 Merge pull request #242 from ertugerata/master
perl rebuild
2016-03-01 21:23:45 +02:00
Ertuğrul Erata 2c88f62360 rebuild perl.. 2016-03-01 21:24:40 +02:00
Ertuğrul Erata 8bfbddfd7d Merge branch 'master' of github.com:pisilinux/core 2016-03-01 21:21:18 +02:00
Ertuğrul Erata bcbd93991c Merge pull request #241 from suvari/master
cpio:rebuild for toolchain
2016-03-01 21:16:43 +02:00
suvari c7259554fd cpio:rebuild for toolchain 2016-03-01 21:14:45 +02:00
Ertuğrul Erata 1cbdc01067 Merge branch 'master' of github.com:pisilinux/core 2016-03-01 21:03:15 +02:00
Ertuğrul Erata 79f45703c8 Merge pull request #240 from suvari/master
libffi: fix dep
2016-03-01 21:03:14 +02:00
suvari 667f4e5f43 libffi: fix dep 2016-03-01 21:02:17 +02:00
Ertuğrul Erata 58af3c0d7d Merge pull request #239 from suvari/master
libffi:rebuild for toolchain
2016-03-01 20:51:36 +02:00
suvari 6b4cb2d684 libffi:rebuild for toolchain 2016-03-01 20:50:34 +02:00
Ertuğrul Erata c26f155b05 Merge pull request #238 from suvari/master
attr, acl: rebuild for toolchain
2016-03-01 20:32:26 +02:00
suvari c794094ddc attr, acl: rebuild for toolchain 2016-03-01 20:31:15 +02:00
Ertuğrul Erata 32c2d0d008 index . 2016-03-01 20:14:28 +02:00
Ertuğrul Erata 07be4dcbe6 Merge pull request #237 from ertugerata/master
patch rebuild and add xattr support
2016-03-01 13:55:19 +02:00
Ertuğrul Erata 05bdeea14f Merge branch 'master' of github.com:ertugerata/core 2016-03-01 13:55:34 +02:00
Ertuğrul Erata 086b3a0a46 patch, add xattr support 2016-03-01 13:54:34 +02:00
Ertuğrul Erata 1a1c8186f3 Merge pull request #236 from ertugerata/master
Update actions.py
2016-03-01 13:34:53 +02:00
Ertuğrul Erata 6eda4ebb34 Update actions.py 2016-03-01 13:34:37 +02:00
Ertuğrul Erata e5c231d4a3 Merge pull request #235 from ertugerata/master
fix build
2016-03-01 13:30:18 +02:00
Ertuğrul Erata 3818225c1c fix build 2016-03-01 13:28:12 +02:00
Ertuğrul Erata 2effe23c07 libpcre fix unused, an deps 2016-03-01 13:15:04 +02:00
Ertuğrul Erata 3e668f7bed Merge pull request #234 from ertugerata/master
fix build libpcre
2016-03-01 13:14:25 +02:00
Ertuğrul Erata fae6419ea0 Merge branch 'master' of github.com:ertugerata/core 2016-03-01 13:06:52 +02:00
Ertuğrul Erata 36de95863f emul32 check disaled. 2016-03-01 13:03:45 +02:00
Ertuğrul Erata c0b34e1055 Merge pull request #233 from ertugerata/master
fix build emul32 bit
2016-03-01 10:20:45 +02:00
Ertuğrul Erata ee4b95b65e fix build emul32 bit,
emul3bit build need glibc-32bit.
2016-03-01 10:20:26 +02:00
Ertuğrul Erata 069b2065f9 test fail in dockerized build. not problem in real system. 2016-02-29 22:50:29 +02:00
Ertuğrul Erata 0240623b5e Merge pull request #232 from ertugerata/master
fix build and disable test in farm.
2016-02-29 22:50:11 +02:00
Ertuğrul Erata 8f4ccccbf5 fix build an deps 2016-02-29 22:48:12 +02:00
Ertuğrul Erata d8fa7b561f rebuild 2016-02-29 21:33:21 +02:00
Ertuğrul Erata 6816f85e11 Merge pull request #231 from ertugerata/master
rebuild
2016-02-29 21:32:28 +02:00
Ertuğrul Erata f726392241 Merge pull request #230 from suvari/master
ncurses: fixed symlinks..
2016-02-29 19:12:37 +02:00
suvari 9ba2eedf87 ncurses: fixed symlinks.. 2016-02-29 18:39:56 +02:00
Ertuğrul Erata 9955e40b7d Merge pull request #229 from ertugerata/master
readline rebuild with new toolchain
2016-02-29 13:16:25 +02:00
Ertuğrul Erata 55b59aa6d8 readline rebuild with new toolchain 2016-02-29 13:14:36 +02:00
Ertuğrul Erata b76c53f657 Merge pull request #228 from ertugerata/master
add libffi-devel
2016-02-29 10:49:30 +02:00
Ertuğrul Erata 465f61a6a3 add libffi-devel 2016-02-29 10:49:12 +02:00
Ertuğrul Erata 16bb3cf0d5 Merge pull request #227 from ertugerata/master
add libunistring
2016-02-29 10:43:43 +02:00
Ertuğrul Erata 0e6d8d53ba add libunistring 2016-02-29 10:43:12 +02:00
Ertuğrul Erata 95d3f73f8b Merge pull request #226 from ertugerata/master
add dep
2016-02-29 10:37:00 +02:00
Ertuğrul Erata 0be622ea09 add dep 2016-02-29 10:36:46 +02:00
Ertuğrul Erata 87f955a50d Merge pull request #225 from ertugerata/master
Update pspec.xml
2016-02-29 09:17:00 +02:00
Ertuğrul Erata d97224c2e7 Update pspec.xml 2016-02-29 09:16:47 +02:00
Ertuğrul Erata 134038f9e7 Merge pull request #224 from ertugerata/master
add abondoned files
2016-02-29 09:07:05 +02:00
Ertuğrul Erata 34ce39b4cc add abandoned files 2016-02-29 09:04:05 +02:00
Ertuğrul Erata d6ed0df52b index . 2016-02-28 23:44:03 +02:00
Ertuğrul Erata cf5008cc08 rebuild with new toolchain 2016-02-28 22:26:11 +02:00
Ertuğrul Erata fdd8b3f1b3 Merge pull request #223 from ertugerata/master
rebuild with new toolchain
2016-02-28 22:25:51 +02:00
Ertuğrul Erata a72777d74e Merge branch 'master' of github.com:pisilinux/core 2016-02-28 20:13:54 +02:00
Ertuğrul Erata 607aeaad82 Merge pull request #222 from ertugerata/new_toolchain
New toolchain
2016-02-28 20:09:15 +02:00
Ertuğrul Erata 29d3be7650 rebuild with new toolchain 2016-02-28 20:07:54 +02:00
Ertuğrul Erata 4699fa16ee fix emul32bit build. 2016-02-28 13:02:19 +02:00
Ertuğrul Erata df0aaea63b fix deps 2016-02-28 08:34:52 +02:00
Ertuğrul Erata af88701b86 version bump , remove patch unneeded.. 2016-02-27 22:55:14 +02:00
Ertuğrul Erata 2275c937e0 glibc update 2016-02-27 18:11:27 +02:00
Ertuğrul Erata 77e56c8df1 libpcre update 2016-02-25 23:49:17 +02:00
Ertuğrul Erata 0961ce4f04 libpcre 2016-02-25 23:48:17 +02:00
Ertuğrul Erata f306fc70a2 index . 2016-02-23 19:53:12 +02:00
Ertuğrul Erata 794cbebdaa Merge pull request #1 from ertugerata/kernel-4.4
Kernel 4.4.2
2016-02-18 22:31:53 +02:00
Ertuğrul Erata fdde8dcd01 last fix 2016-02-18 22:29:15 +02:00
Ertuğrul Erata 56cc177d24 works for new kernel 2016-02-18 21:10:09 +02:00
Ertuğrul Erata 476a649e8f update 2016-02-07 20:25:56 +02:00
Ertuğrul Erata dbd2139624 Merge pull request #221 from ertugerata/kernel-4.4
cpupowertools update
2016-02-03 20:51:26 +02:00
Ertuğrul Erata 50a7735405 cpupowertools update 2016-02-03 20:52:10 +02:00
Ertuğrul Erata 70a72aeca1 Merge pull request #220 from ertugerata/kernel-4.4
Kernel 4.4.1 drivers
2016-02-03 20:43:04 +02:00
Ertuğrul Erata c5313385a8 update drivers 2016-02-03 20:39:39 +02:00
Ertuğrul Erata bf0f2c267b works for 4.4.1 2016-02-02 11:11:13 +02:00
Ertuğrul Erata 5d0f116d89 Merge pull request #219 from ertugerata/kernel-4.4
Kernel 4.4 rebuild for 	add UEVENT_SUPPORT_HELPER close #47
2016-01-30 21:03:57 +02:00
Ertuğrul Erata 9abde1e94b Merge branch 'master' into kernel-4.4 2016-01-30 21:03:35 +02:00
Ertuğrul Erata d7ad18f4de add UEVENT_SUPPORT_HELPER 2016-01-30 18:20:30 +02:00
Ertuğrul Erata 6d0c8bd8c3 Merge pull request #218 from ertugerata/master
busybox update
2016-01-29 23:37:41 +02:00
Ertuğrul Erata 8e77060547 busybox update 2016-01-29 23:17:15 +02:00
Ertuğrul Erata e950985a5f Merge pull request #217 from alihanozturk/master
util-linux:add patch
2016-01-28 22:36:23 +02:00
alihanozturk 9edcd9510e util-linux:add patch 2016-01-28 19:15:11 +02:00
Ertuğrul Erata 7dc4ab2d51 Merge pull request #216 from alihanozturk/master
freetype:update
2016-01-28 14:16:33 +02:00
alihanozturk f714fcb126 freetype:update 2016-01-28 14:13:44 +02:00
Ertuğrul Erata fc206405b8 Merge pull request #213 from groni/master
coreutils version bump, remove openssl and openssl-devel
2016-01-28 13:33:04 +02:00
groni d700b4b675 coreutils remove openssl and openssl-devel 2016-01-28 12:29:31 +01:00
groni 0adead1521 coreutils version bump remove devel 2016-01-28 10:10:03 +01:00
groni e7987ffe15 Merge branch 'master' of https://github.com/pisilinux/core 2016-01-28 10:08:15 +01:00
Ertuğrul Erata fa6641e171 Merge pull request #215 from alihanozturk/master
isl, cloog and cracklib update
2016-01-28 10:05:01 +02:00
alihanozturk 79e450b609 elfutils:update 2016-01-28 01:50:05 +02:00
alihanozturk 60e1aa4749 docbook-xsl and xmlto:update 2016-01-28 01:33:40 +02:00
alihanozturk f62de0ab07 docbook-xml:update 2016-01-28 01:20:23 +02:00
alihanozturk 5a6e31d7e4 dhcpcd:update 2016-01-28 00:57:35 +02:00
alihanozturk 4c1aa5b4ef curl:update 2016-01-28 00:43:03 +02:00
alihanozturk bd0cfbf0ae cryptsetup:update 2016-01-28 00:19:06 +02:00
alihanozturk adb1b3a79f cracklib:update 2016-01-28 00:11:03 +02:00
alihanozturk 029e93a6a4 cloog:update 2016-01-28 00:00:05 +02:00
alihanozturk 9069618d2a isl:update 2016-01-27 23:51:34 +02:00
Ertuğrul Erata f41eda3107 Merge pull request #214 from ertugerata/master
mtools moved from main
2016-01-27 20:19:55 +02:00
Ertuğrul Erata 3e3b53074d index. 2016-01-27 20:19:35 +02:00
Ertuğrul Erata a2987d2357 mtools in core 2016-01-27 20:18:45 +02:00
groni 8199e5e839 coreutils version bump 2016-01-27 17:00:31 +01:00
Ertuğrul Erata 914809e01d Merge pull request #212 from ertugerata/master
gperftools update
2016-01-25 22:32:36 +02:00
Ertuğrul Erata 01311c63b5 gperftools update 2016-01-25 22:31:07 +02:00
Ertuğrul Erata bfb6c0773c Merge pull request #210 from ertugerata/master
update glib2 and gobject-introspection
2016-01-25 21:26:37 +02:00
Ertuğrul Erata 3e1effb15b Merge branch 'master' of github.com:ertugerata/core 2016-01-25 21:26:59 +02:00
Ertuğrul Erata 7c748096b1 update glib2 and gobject-introspection 2016-01-25 21:26:11 +02:00
Ertuğrul Erata 288e8ec308 Update core_check_lfs.md 2016-01-25 21:24:11 +02:00
Ertuğrul Erata 2c787bc340 Merge pull request #209 from ertugerata/kernel-4.4
add CVE patch..
2016-01-25 20:12:23 +02:00
Ertuğrul Erata 619ff52726 Merge branch 'master' of github.com:pisilinux/core into kernel-4.4 2016-01-25 20:11:52 +02:00
Ertuğrul Erata 52ecac467c add CVE patch.. 2016-01-25 16:27:30 +02:00
Ertuğrul Erata 0f780f5636 Merge pull request #208 from ertugerata/new_eudev
New Eudev-3.1.5
2016-01-25 14:10:53 +02:00
Ertuğrul Erata 3dad828884 Merge branch 'master' into new_eudev 2016-01-25 13:20:29 +02:00
Ertuğrul Erata 0f63c6344b index . now 2016-01-24 19:04:24 +02:00
Ertuğrul Erata 018049d3a3 Merge pull request #207 from ertugerata/master
dbus-python rebuild for unused...
2016-01-23 23:03:25 +02:00
Ertuğrul Erata b9f12e9217 dbus-python rebuild for unused... 2016-01-23 23:02:53 +02:00
Ertuğrul Erata f01bdb06fb mpfr update 2016-01-23 22:32:30 +02:00
Ertuğrul Erata 0ffd24bce6 Merge pull request #206 from ertugerata/master
mpfr update
2016-01-23 22:32:09 +02:00
Ertuğrul Erata 951f0ce21c Merge pull request #205 from ertugerata/master
update linux-firmware
2016-01-23 22:13:08 +02:00
Ertuğrul Erata 9023195a50 update 2016-01-22 21:55:02 +02:00
Ertuğrul Erata 9ea51ce7ec Update core_check_lfs.md 2016-01-20 21:45:17 +02:00
Ertuğrul Erata b74e481204 eudev update, libgudev removed in source. 2016-01-17 11:26:07 +02:00
Ertuğrul Erata f3e5f6cb84 Merge pull request #204 from ertugerata/master
rebuild for fix #190
2016-01-17 01:36:04 +02:00
Ertuğrul Erata d8b2b50f0d rebuild for fix #190 2016-01-17 01:36:21 +02:00
Ertuğrul Erata 6835d481e0 Merge pull request #203 from ertugerata/master
update linux-firmware
2016-01-17 00:04:35 +02:00
Ertuğrul Erata e233d4eeae update linux-firmware 2016-01-17 00:05:06 +02:00
Ertuğrul Erata 9489704d2a Merge pull request #202 from ertugerata/master
Alfa7, New Cat in town....
2016-01-16 21:21:28 +02:00
Ertuğrul Erata 58f14626db Alfa7, New Cat in town.... 2016-01-16 21:19:13 +02:00
Ertuğrul Erata 40562cad06 Merge pull request #201 from ertugerata/master
update cpupowertools
2016-01-16 17:05:59 +02:00
Ertuğrul Erata 83fd0a0e41 update cpupowertools 2016-01-16 17:05:46 +02:00
Ertuğrul Erata fda3013f23 thanks @alihan 2016-01-16 13:08:19 +02:00
Ertuğrul Erata 2f8391cd8e Merge pull request #200 from ertugerata/master
rebuild
2016-01-16 12:24:44 +02:00
Ertuğrul Erata 01e60f5a6b rebuild 2016-01-16 12:25:25 +02:00
Ertuğrul Erata 8867e6522a Merge pull request #199 from ertugerata/master
rebuild ndiswrapper
2016-01-16 12:20:15 +02:00
Ertuğrul Erata 594e60b1f1 rebuild ndiswrapper 2016-01-16 12:21:02 +02:00
Ertuğrul Erata 242c23ca97 Merge pull request #198 from ertugerata/master
rebuild new driveers
2016-01-16 12:12:16 +02:00
Ertuğrul Erata 2585000470 rebuild new driveers 2016-01-16 12:12:29 +02:00
Ertuğrul Erata 772576aa9c Merge pull request #197 from alihanozturk/master
cython:update
2016-01-16 00:01:15 +02:00
alihanozturk 492ede14db cython:update 2016-01-15 23:29:50 +02:00
Ertuğrul Erata 015cf59208 Merge pull request #196 from alihanozturk/master
check:update
2016-01-15 23:14:14 +02:00
alihanozturk fee7be63d0 check:update 2016-01-15 23:11:07 +02:00
Ertuğrul Erata 6fa5631ea5 Merge pull request #195 from alihanozturk/master
ca-certificates:update
2016-01-15 23:06:23 +02:00
alihanozturk 8d861cc193 ca-certificates:update 2016-01-15 23:03:08 +02:00
Ertuğrul Erata c1dfe5f738 Merge pull request #194 from ertugerata/master
kernel-4.4 mainline
2016-01-13 19:43:53 +02:00
Ertuğrul Erata e5271da5b6 eudev... 2016-01-12 21:18:37 +02:00
Ertuğrul Erata 1945611b9c Merge branch 'kernel-4.4' 2016-01-12 21:16:56 +02:00
Ertuğrul Erata 534994f5ea Merge branch 'master' of github.com:ertugerata/core 2016-01-11 23:15:27 +02:00
Ertuğrul Erata aec578d5db Merge pull request #193 from alihanozturk/master
autogen:version update
2016-01-11 23:06:11 +02:00
Ertuğrul Erata f791d2e35d fix release numbaer and version 2016-01-11 23:05:42 +02:00
alihanozturk f19aa1e48a autogen:version update 2016-01-11 22:44:00 +02:00
Ertuğrul Erata 2f86517914 works for kernel-4.4.0 2016-01-11 22:18:36 +02:00
Ertuğrul Erata 6634d88717 Merge branch 'master' into kernel-4.4 2016-01-11 08:52:59 +02:00
Ertuğrul Erata e7cd21093e biosdevname OK 2016-01-10 19:47:11 +02:00
Ertuğrul Erata 65ff945666 biosdevname updateto 0.7.1 2016-01-10 19:43:07 +02:00
Ertuğrul Erata 5f413dfc28 Merge pull request #192 from ertugerata/master
biosdevname updateto 0.7.1
2016-01-10 19:42:45 +02:00
Ertuğrul Erata c6882c65fe Merge pull request #191 from ertugerata/master
index .
2016-01-09 23:56:28 +02:00
Ertuğrul Erata 3ea1ae8cbf Merge branch 'master' into new_eudev 2016-01-09 23:45:46 +02:00
Ertuğrul Erata 64e825612e Update core_check_lfs.md 2016-01-05 11:04:51 +02:00
Ertuğrul Erata 50ed015d9a Update core_check_lfs.md 2016-01-05 10:59:53 +02:00
Ertuğrul Erata 801b520048 Create core_check_lfs.md
https://gist.github.com/ertugerata/3dd26e482f0f928b7bc9
2016-01-05 10:41:26 +02:00
Ertuğrul Erata aa5226b929 index . 2016-01-04 21:00:58 +02:00
Ertuğrul Erata 82fdb210d9 Merge pull request #189 from ertugerata/master
fix disc mount too
2016-01-04 13:04:28 +02:00
Ertuğrul Erata 14aa28d68f fix disc mount too 2016-01-04 13:04:01 +02:00
Ertuğrul Erata 7d9ae1a93a Merge pull request #188 from ertugerata/master
fix findutils
2016-01-03 22:08:59 +02:00
Ertuğrul Erata c37e3b996a fix findutils 2016-01-03 22:09:23 +02:00
Ertuğrul Erata 23dc84d231 fix build 2016-01-03 21:46:14 +02:00
Ertuğrul Erata cd8562af91 Merge pull request #187 from ertugerata/master
fix build
2016-01-03 21:45:55 +02:00
Ertuğrul Erata 0d078a1560 Merge pull request #186 from ertugerata/master
findutils man-pages ...
2016-01-03 21:33:48 +02:00
Ertuğrul Erata 3e93ad596f findutils man-pages ... 2016-01-03 21:34:08 +02:00
Ertuğrul Erata 5e58d9b80d update gettext 2016-01-03 21:31:16 +02:00
Ertuğrul Erata 41146547a5 Merge pull request #185 from ertugerata/master
update gettext
2016-01-03 21:30:57 +02:00
Ertuğrul Erata c82468c694 Merge pull request #184 from suvari/master
pciutils: ver. bump to 3.4.1
2016-01-03 21:29:29 +02:00
suvari 13a835fc16 pciutils: ver. bump to 3.4.1 2016-01-03 21:19:56 +02:00
Ertuğrul Erata b803382487 Merge pull request #183 from ertugerata/master
version update ...
2016-01-03 20:49:50 +02:00
Ertuğrul Erata bea005e33d version update ... 2016-01-03 20:49:59 +02:00
Ertuğrul Erata 1f815c731d Merge pull request #182 from ertugerata/master
fix for ntfs usb-disc
2016-01-03 18:46:27 +02:00
Ertuğrul Erata 50de9ff98e fix for ntfs usb-disc 2016-01-03 18:45:50 +02:00
Ertuğrul Erata 16f5d5b943 Merge branch 'master' into new_eudev 2016-01-03 18:41:39 +02:00
Ertuğrul Erata 1bed8f49d5 Merge pull request #181 from ertugerata/master
fix build
2016-01-03 18:30:58 +02:00
Ertuğrul Erata a39a2c1658 fix build 2016-01-03 18:30:37 +02:00
Ertuğrul Erata 12b06b820b Merge pull request #180 from ertugerata/master
update cpio, fix mudur and fizx relase number eudev
2016-01-03 18:04:54 +02:00
Ertuğrul Erata 0abcc923dc update cpio, fix mudur and fizx relase number eudev 2016-01-03 18:03:19 +02:00
Ertuğrul Erata 23d5f5efdd Merge pull request #179 from ertugerata/master
for  usb mount
2016-01-03 16:49:53 +02:00
Ertuğrul Erata 8a00ea6d3a fix for usb automount 2016-01-03 16:48:51 +02:00
Ertuğrul Erata d040744022 index . 2016-01-02 08:55:46 +02:00
Ertuğrul Erata 9caaa85ed1 update virtualbox modules 2015-12-30 22:19:12 +02:00
Ertuğrul Erata 7faa0b1195 Merge pull request #178 from ertugerata/master
update virtualbox modules
2015-12-30 22:18:52 +02:00
Ertuğrul Erata 482428684c update virtualbox modules 2015-12-30 22:16:26 +02:00
Ertuğrul Erata 62a62e4c93 Merge branch 'master' of github.com:pisilinux/core into new_eudev 2015-12-26 19:52:29 +02:00
Ertuğrul Erata 220a2de56f Merge pull request #177 from groni/master
usbutils version bump and new usb.ids
2015-12-26 14:12:43 +02:00
groni 171089a0e1 usbutils version bump and new usb.ids 2015-12-26 13:06:19 +01:00
Ertuğrul Erata e218e906ba update 2015-12-23 20:10:14 +02:00
Ertuğrul Erata 9bd8486ff9 Merge pull request #176 from ertugerata/master
update dbus close #175
2015-12-23 19:50:54 +02:00
Ertuğrul Erata 66881e6b9a update dbus close #175 2015-12-23 19:50:45 +02:00
Ertuğrul Erata 861422d53a Merge pull request #174 from ertugerata/master
openssl update
2015-12-14 21:08:41 +02:00
Ertuğrul Erata ff99ccf145 openssl update 2015-12-14 21:08:59 +02:00
Ertuğrul Erata cdaee8b005 Merge pull request #173 from ertugerata/kernel-4.3
kernel-4.3.2 drivers
2015-12-13 14:33:30 +02:00
Ertuğrul Erata 9ddca18784 kernel-4.3.2 drivers 2015-12-13 14:33:18 +02:00
Ertuğrul Erata 8ddd72e2c3 Merge pull request #172 from ertugerata/kernel-4.3
update cpupowertools
2015-12-13 10:58:36 +02:00
Ertuğrul Erata 26c1f292fc Merge pull request #171 from ertugerata/kernel-4.3
Kernel 4.3.2
2015-12-13 10:57:37 +02:00
Ertuğrul Erata 773f79286b update cpupowertools 2015-12-13 10:57:10 +02:00
Ertuğrul Erata 1cd6b8beaf add config 2015-12-12 19:45:32 +02:00
Ertuğrul Erata c6be62a5ac works for kernel-4.3.2 2015-12-12 19:13:36 +02:00
Ertuğrul Erata c93594c468 Merge pull request #170 from ertugerata/master
gmp update
2015-12-09 20:19:46 +02:00
Ertuğrul Erata a54e152233 gmp update 2015-12-09 20:19:20 +02:00
Ertuğrul Erata 3c6af3c6f6 Merge pull request #169 from ertugerata/master
update ..
2015-12-02 21:15:16 +02:00
Ertuğrul Erata e849604dd8 update .. 2015-12-02 21:08:13 +02:00
Ertuğrul Erata 0357406a27 Merge pull request #168 from ertugerata/master
index now
2015-12-02 13:28:06 +02:00
Ertuğrul Erata e3df0a9e25 index now 2015-12-02 13:18:21 +02:00
Ertuğrul Erata 330fab9d36 Merge pull request #167 from ertugerata/kernel-4.3
Kernel 4.3
2015-12-02 13:07:18 +02:00
Ertuğrul Erata 966fa05e95 fix build with kernel-4.3 2015-12-02 10:29:41 +02:00
Ertuğrul Erata d6a9eeb05e kernel-4.3.0
module-virtualbox have build problem...
2015-12-01 15:15:22 +02:00
Ertuğrul Erata 664b5d1296 Merge pull request #166 from ertugerata/master
Add texinfo for build docs
2015-11-30 09:32:03 +02:00
Ertuğrul Erata 336bccbfe5 dd texinfo for build docs 2015-11-30 09:29:50 +02:00
Ertuğrul Erata 587754d5b1 Merge pull request #165 from ertugerata/master
sync with lfs
2015-11-29 18:55:49 +02:00
Ertuğrul Erata 0eca359213 sync with lfs 2015-11-29 18:55:18 +02:00
yusuf 6427e64a35 Merge pull request #164 from aydemir/master
cmake version bump to 3.4.0
2015-11-15 19:17:36 +02:00
aydemir bffc169432 cmake version bump to 3.4.0 2015-11-15 19:16:33 +02:00
yusuf d2adf7f17d Merge pull request #163 from aydemir/master
pisi kde5 api
2015-11-15 18:57:56 +02:00
aydemir ad6e7f3b54 pisi kde5 api 2015-11-15 18:56:56 +02:00
yusuf 318fe34dbe Merge pull request #162 from aydemir/master
kde5 api add some options
2015-11-15 18:28:33 +02:00
aydemir cdf339b2bc kde5 api add some options 2015-11-15 18:26:37 +02:00
Ertuğrul Erata c6f72d68a6 Merge pull request #161 from ertugerata/master
dbus and util-linux
2015-11-12 16:45:33 +02:00
Ertuğrul Erata a59aab03b9 Update pspec.xml 2015-11-12 16:44:58 +02:00
Ertuğrul Erata 60e98408f5 Update pspec.xml 2015-11-12 16:44:29 +02:00
Ertuğrul Erata c74e524b4d Merge pull request #160 from ertugerata/master
update dbus and util-linux
2015-11-12 14:11:33 +02:00
Ertuğrul Erata 03a2771387 update dbus and util-linux 2015-11-12 14:03:01 +02:00
Ertuğrul Erata 619a4236b9 Merge pull request #159 from ertugerata/master
kernel-4.2.6 is ready
2015-11-11 14:04:54 +02:00
Ertuğrul Erata 08844ad4bf kernel-4.2.6 is ready 2015-11-11 13:06:37 +02:00
yusuf 2a715b3289 Merge pull request #157 from namso-01/master
nspr: version bump for firefox
2015-11-09 16:34:37 +02:00
namso-01 9b53eb6ca7 nspr: version bump for firefox 2015-11-09 16:54:02 +02:00
Ertuğrul Erata fc4724ab15 Merge pull request #156 from ertugerata/master
new index 7Kasım
2015-11-07 11:40:45 +02:00
Ertuğrul Erata 48d695d515 new index 7Kasım 2015-11-07 12:40:46 +03:00
Ertuğrul Erata 6f866e6f57 Merge pull request #155 from ertugerata/master
update grep-2.22
2015-11-07 10:42:32 +02:00
Ertuğrul Erata 90d18d25af update grep-2.22 2015-11-07 11:41:30 +03:00
Ertuğrul Erata f62d88c8f3 Merge pull request #154 from ertugerata/master
rebuild lsb-release
2015-11-01 06:54:27 +02:00
Ertuğrul Erata bf3dcc1e22 rebuild lsb-release 2015-11-01 07:53:22 +03:00
Ertuğrul Erata bb830ffba8 Merge pull request #153 from ertugerata/master
fix release number
2015-10-31 10:48:07 +02:00
Ertuğrul Erata 8707aff636 fix release number 2015-10-31 11:40:15 +03:00
361 changed files with 71985 additions and 121373 deletions
+196
View File
@@ -0,0 +1,196 @@
- [x] acl - Erişim denetim listesi için çeşitli araçlar
- [ ] alternatives - Alternatif yönetim sistemi
- [x] attr - Gelişkin öznitelikler araçları
- [x] autoconf - Used to create autoconfiguration files
- [x] autogen - Otomatik metin ve program üretme aracı -- arch'da 5.18.6
- [x] automake - Makefile.am yapılandırma dosyalarından Makefile.in dosyası üreten program
- [ ] baselayout - Dosya sisteminin temel planı
- [x] bash - GNU Bource again kabuğu
- [x] bc - Konsol temelli hesap makinesi
- [ ] binutils - Makine dili derleme ve bağlama araçları // *LFS 2.25.1*
- [x] biosdevname - Biosdevname is a udev helper utility developed // *http://linux.dell.com/biosdevname/biosdevname-0.7.1/biosdevname-0.7.1.tar.gz*
- [x] bison - Yacc uyumlu yazım ayrıştırma üreteci
- [ ] busybox - Statik bağlanmış sistem komutları bütünü // *http://busybox.net/downloads/busybox-1.24.1.tar.bz2*
- [x] bzip2 - Yüksek kaliteli bir veri sıkıştırma uygulaması
- [x] ca-certificates - Common CA certificates // https://packages.qa.debian.org/c/ca-certificates.html 20151214*
- [ ] catbox - Python için sandbox modülü
- [x] check - C için birim test ortamı //*BLFS http://downloads.sourceforge.net/check/check-0.10.0.tar.gz*
- [x] chrpath - Dinamik kitaplık yükleme yolunu (rpath) değiştirme aracı // BLFS
- [ ] cloog - Chunky Loop Generator // *https://github.com/periscop/cloog/archive/cloog-0.18.4.tar.gz*
- [ ] cmake - Cmake, açık kaynak kodlu ve birden fazla platformda çalışan bir 'make' sistemidir. // * BLFS http://www.cmake.org/files/v3.4/cmake-3.4.1.tar.gz*
- [x] colorgcc - GCC çıktısını renklendiren bir araç.
- [ ] comar - Sistem yapılandırmasını yönetir
- [ ] comar-api - Çomar betikleri için yardımcı fonksiyonlar
- [x] coreutils - Standart dosya, metin ve kabuk uygulamaları
- [x] cpio - Tar ve cpio dosyaları içine yazıp okuyabilen bir dosya arşivleme uygulaması // BLFS
- [x] cpupowertools - CPU güç/frekans yönetim araçları
- [ ] cracklib - Parola Kontrol Kütüphanesi // *BLFS https://github.com/cracklib/cracklib/releases/download/cracklib-2.9.6/cracklib-2.9.6.tar.gz*
- [ ] cryptsetup - Şifreli dosya sistemleri yaratmak için bir araç // * https://www.kernel.org/pub/linux/utils/cryptsetup/v1.7/cryptsetup-1.7.0.tar.xz*
- [ ] curl - Uzak sunuculardan dosya indirmek için bir araç // *BLFS http://curl.haxx.se/download/curl-7.46.0.tar.lzma*
- [ ] cython - Python için C eklentileri // * http://cython.org/release/Cython-0.23.4.tar.gz*
- [ ] db - Oracle Berkeley DB // *BLFS http://download.oracle.com/berkeley-db/db-6.1.26.tar.gz *
- [x] dbus - Uygulamaların birbirleriyle haberleşmesinin basit bir yöntemi
- [x] dbus-glib - D-Bus için GLib bağlayıcıları
- [x] dbus-python - D-Bus için Python bağlayıcıları
- [ ] dhcpcd - DHCP protokolü için istemci // *BLFS http://roy.marples.name/downloads/dhcpcd/dhcpcd-6.9.4.tar.xz *
- [ ] dietlibc - Düşük boyut için optimize edilmiş C kütüphanesi // http://www.fefe.de/dietlibc/dietlibc-0.33.tar.bz2
- [x] diffutils - Dosyaları karşılaştırmak ve fark dosyaları oluşturmak için kullanılan araçlar
- [ ] disktype - Disk veya disk görüntüsünün biçimsel içeriğini saptar
- [ ] docbook-xml - Docbook XML DTD
- [ ] docbook-xsl - Docbook XSL biçemyaprakları
- [x] e2fsprogs - Standart ext2, ext3, ext4 dosya sistemi uygulamaları
- [ ] elfutils - Derlenmiş objeleri işlemek için gereken aletler koleksiyonu // *BLFS https://fedorahosted.org/releases/e/l/elfutils/0.164/elfutils-0.164.tar.bz2 *
- [ ] eudev - eudev sistemd-udev uygulamasının çatalı // * https://github.com/gentoo/eudev/archive/v3.1.5.tar.gz* __this release need libgudev__
- [x] expat - XML ayrıştırıcı kütüphaneleri
- [x] file - Dosya tipini belirlemek için kullanılan bir uygulamadır
- [x] findutils - Dosya bulmak için kullanılan GNU uygulamaları
- [x] flex - GNU sözcüksel analiz üreteci
- [ ] freetype - Yüksek kaliteli ve taşınabilir yazıtipi düzeneği // *BLFS http://downloads.sourceforge.net/freetype/freetype-2.6.2.tar.bz2*
- [x] fuse - Kullanıcı düzeyinde dosya sistemi oluştumaya yarayan kitaplık // BLFS
- [x] gawk - Metin işleme uygulaması olan awk'ın GNU versiyonu
- [ ] gc - C ve C++ için bir çöp toplama kitaplığı
- [ ] gcc - C/C++ ve Fortran derleyicisi // gcc-5.3.0
- [x] gdbm - Perl uyumlu standart GNU veritabanı kütüphaneleri
- [x] gettext - Farklı dillerde ileti katalogları üretmek için gerekli GNU araçları ve kütüphaneleri
- [x] glib2 - C programlama dili için glib kütüphanesi // * BLFS http://ftp.gnome.org/pub/gnome/sources/glib/2.46/glib-2.46.2.tar.xz *
- [ ] glibc - GNU libc6 (glibc2 olarak da bilinir) C kitaplığı // Glibc-2.22
- [ ] glpk - GNU Doğrusal Programlama Kiti //* http://ftp.gnu.org/gnu/glpk/glpk-4.57.tar.gz*
- [x] gmp - İstenilen duyarlıkta çalışabilen aritmetik işlem kitaplığı
- [ ] gnuconfig - Autofoo için temel config dosyaları
- [x] gobject-introspection - Introspection system for GObject-based libraries // * BLFS http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.46/gobject-introspection-1.46.0.tar.xz *
- [x] gperf - Mükemmel hash üreticisi
- [ ] gperftools - Google Performans Araçları // * https://github.com/gperftools/gperftools/releases/download/gperftools-2.4/gperftools-2.4.tar.gz *
- [x] grep - Grep düzenli ifade eşleme aracı
- [x] groff - Belge biçimlendirme sistemi
- [ ] grub2 - GNU GRUB is a Multiboot boot loader.
- [x] guile - GNU Scheme yorumlayıcısı ve kitaplığı // * BLFS*
- [x] gzip - GNU dosya arşiv aracı
- [ ] help2man - Geleneksel --help çıktılarını man sayfalarına dönüştüren bir GNU yazılımı // * ftp://ftp.gnu.org/gnu/help2man/help2man-1.47.3.tar.xz*
- [x] intltool - Çeşitli kaynak kod dosyalarından satırları ayıklamak için kullanılan betikler
- [ ] isl - Integer Set Library
- [x] json-c - C dilinde JSON gerçeklemesi // BLFS
- [x] kbd - Klavye ve konsol araçları
- [ ] kernel - Pisi Linux için Linux çekirdeği
- [ ] klibc - Küçük bir C kütüphanesi (libc) uyarlaması
- [x] kmod - Linux kernel modülleri yönetim araçları
- [x] less - Mükemmel bir metin görüntüleyici
- [ ] leveldb - Hızlı ve hafif bir anahtar/değer veri kütüphanesi
- [x] libarchive - Birçok farklı akış arşiv formatını yaratan ve okuyan programlama kitaplığı // *BLFS*
- [x] libatomic_ops - Atomik bellek işlemleri kütüphanesi // BLFS
- [x] libcap - POSIX 1003.1e desteği
- [ ] libcap-ng - Alternatif bir POSIX yetenekleri kütüphanesi // * http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-0.7.7.tar.gz*
- [x] libee - An Event Expression Library inspired by CEE
- [ ] libestr - Library for some string essentials // *http://libestr.adiscon.com/files/download/libestr-0.1.10.tar.gz*
- [x] libffi - Yabancı işlev arayüzleri için taşınabilir bir kitaplık
- [ ] libgcrypt - Genel amaçlı bir şifreleme kitaplığı // *BLFS ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.4.tar.bz2*
- [ ] libgpg-error - GnuPG bileşenlerinin kullandığı hata değerleri için kitaplık // * BLFS ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.21.tar.bz2 *
- [ ] libidn - Uluslararası Alan Adları (IDN) destek kütüphanesi // *BLFS http://ftp.gnu.org/gnu/libidn/libidn-1.32.tar.gz *
- [ ] liblogging - Easy to use, portable, open source library for system logging // *http://download.rsyslog.com/liblogging/liblogging-1.0.5.tar.gz *
- [x] libmpc - Yüksek hassasiyet ve yuvarlama kitaplığı
- [ ] libpcre - Perl-uyumlu sıradan ifade kütüphanesi // *ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz *
- [x] libpipeline - pipeline yönetim kitaplığı
- [ ] libpng - PNG kütüphanesi // *http://downloads.sourceforge.net/libpng/libpng-1.6.20.tar.xz *
- [ ] libseccomp - Gelişmiş seccomp kütüphanesi // *https://github.com/seccomp/libseccomp/releases/download/v2.2.3/libseccomp-2.2.3.tar.gz*
- [x] libsigsegv - Oluşan bellek hatalarının kullanıcı kipinde işlenmesini sağlayan bir kitaplık
- [ ] libssh2 - SSH2 protokolü için kütüphane // *http://www.libssh2.org/download/libssh2-1.6.0.tar.gz*
- [ ] libtool - Program geliştiriciler için ortak kütüphane aracı // __libtool-2.4.6__
- [ ] libunistring - Unicode karakter dizisi kitaplığı // *http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.5.tar.xz*
- [x] libunwind - Yazılım çağrıları geri izleme aracı
- [ ] libusb - Userspace access to USB devices // BLFS http://downloads.sourceforge.net/libusb/libusb-1.0.20.tar.bz2
- [x] libusb-compat - Userspace access to USB devices // BLFS
- [ ] libuser - Kullanıcı ve grup hesap yönetim kitaplığı // libuser-0.62
- [ ] libxml2 - XML türü dosyaları işlemeye aracılık eden kütüphanenin 2. sürümü // BLFS *http://xmlsoft.org/sources/libxml2-2.9.3.tar.gz*
- [x] libxslt - XSLT kitaplığı ve araçları // BLFS
- [ ] linux-firmware - Linux çekirdeği tarafından kullanılan firmware dosyaları
- [x] lsb-release - LSB sürüm sorgulama aracı // BLFS
- [ ] lvm2 - Mantıksal Hacim Yönetimi aracı // *BLFS ftp://sources.redhat.com/pub/lvm2/releases/LVM2.2.02.138.tgz*
- [x] lzo - Çok hızlı bir sıkıştırma/açma kütüphanesi // BLFS
- [x] m4 - GNU makro işleyicisi
- [ ] mailcap - Dosya türleri için yardımcı uygulama ve MIME türü ilişkilendirmeleri // mailcap-2.1.44
- [x] make - Geleneksel kaynak kod ağaçlarını derleme aracı
- [x] man-db - Kapsamlı Linux kılavuzları
- [x] man-pages - Kapsamlı Linux kılavuz dökümanları
- [ ] mdadm - MD aygıtlarını (Yazılımsal RAID) denetleme aracı // *BLFS http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-3.3.4.tar.xz*
- [ ] mingetty - Sadece sanal konsollar için yekpare bir getty programı
- [ ] miscfiles - Çeşitli dosyalar
- [ ] mkinitramfs - initramfs image dosyası yaratmak için araç
- [ ] module-bbswitch - Optimus grafik kartlı bir dizüstü bilgisayarda grafik kartını seçmeye yarayan çekirdek modülüdür.
- [ ] module-broadcom-wl - Broadcom'un BCM4311, BCM4312, BCM4321 ve BCM4322 tabanlı kablosuz bağdaştırıcıları için IEEE 802.11a/b/g/n aygıt sürücüleri
- [ ] module-virtualbox - Kernel modules for VirtualBox
- [ ] module-virtualbox-guest - VirtualBox misafir makineleri için çekirdek modülleri
- [ ] mpfr - Multiple precision floating point library // MPFR-3.1.3
- [ ] mudur - Pisi Linux açılış sistemi
- [ ] nasm - Assembler derleyicisi // *BLFS http://www.nasm.us/pub/nasm/releasebuilds/2.11.08/nasm-2.11.08.tar.xz*
- [ ] ncompress - Bir başka sıkışmış dosya açma programı
- [x] ncurses - Konsol görsel kütüphanesi
- [ ] ndiswrapper - Bir sürücü ara yazılımı(wrapper)
- [ ] net-tools - Linux ağ araçları // BLFS http://anduin.linuxfromscratch.org/BLFS/net-tools/net-tools-CVS_20101030.tar.gz ?
- [x] nettle - The Nettle package contains the low-level cryptographic library. // BLFS
- [ ] nspr - Netscape Taşınabilir Çalışma Zamanı // *https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.11/src/nspr-4.11.tar.gz *
- [x] nss-mdns - İsim servisi değiştirme modülü
- [ ] numactl - NUMA makineleri optimize etmek için bir kitaplık // __move to util.admin?__
- [x] openssl - SSL v2/v3 ve TLS v1 için araç kiti // BLFS
- [ ] os-prober - Utility to detect other OSes on a set of drives // __1.70__
- [ ] pam - PAM - Eklenebilir Yetkilendirme Modülleri // *BLFS http://linux-pam.org/library/Linux-PAM-1.2.1.tar.bz2*
- [x] patch - Yama dosyalarını uygular //
- [x] pciutils - PCI veriyolu işlevleri ile ilgili çeşitli programlar // *BLFS 3.4.1*
- [ ] pcmciautils - PCMCIA veriyolu işlevleri ile ilgili çeşitli araçlar
- [ ] perl - Perl dili // *5.22.1*
- [x] perl-Locale-gettext - GNU yerel araçlarına erişim için Perl modülü //
- [x] perl-XML-Parser - James Clark'ın XML ayırıştırıcısına bir Perl uzantısı arayüzü
- [ ] piksemel - iksemel için python desteği
- [ ] pisi - PİSİ PiSi Linux'un paket yönetim sistemidir
- [ ] pisilinux-python - PiSi Linux için Python modülleri
- [x] pkgconfig - Kütüphaneler için derleme bayraklarını yöneten bir paket yapılandırma sistemi
- [x] plyvel - Plyvel, LevelDB için, hızlı ve zengin özellikli Python arabirimi.
- [x] polkit - Sistem bileşenleri için erişim politikası servisi
- [x] popt - Popt komut satırında çalıştıran bir seçenek ayrıştırıcıdır.
- [ ] ppl - Pharma Polyhedra kitaplığı
- [x] procps - Geleneksel bilgilendirme yardımcı programları ve süreç işleme araçları
- [x] psmisc - proc dosya sistemi kullanan bir araç takımı
- [ ] pycurl - Python cURL Modülü // *https://github.com/pycurl/pycurl/archive/REL_7_19_5_3.tar.gz*
- [ ] pypolkit - PolicyKit için Python bağlayıcısı
- [ ] python - Nesneye yönelik bir programlama dili // *BLFS https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz*
- [ ] python-psutil - Platform bağımsız, süreçler hakkında bilgi sağlayan bir Python modülü // *https://pypi.python.org/packages/source/p/psutil/psutil-3.3.0.tar.gz*
- [x] python-pyliblzma - Python için lzma bağlayıcıları
- [ ] python-setuptools - Python kurulum araçları // *? https://pypi.python.org/pypi/distribute/0.7.3 , https://pypi.python.org/pypi/setuptools*
- [x] readline - Diğer bir şirin konsol gösterim kütüphanesi //
- [ ] rsyslog - Gelişmiş sistem günlükleme hizmeti // *http://www.rsyslog.com/files/download/rsyslog/rsyslog-8.15.0.tar.gz*
- [ ] run-parts - run scripts or programs in a directory
- [ ] scons - Python temelli, esnek, geliştirilebilir inşa aracı // *BLFS http://downloads.sourceforge.net/scons/scons-2.4.1.tar.gz *
- [x] sed - GNU stream düzenleyici
- [x] sgml-common - SGML ISO karakter nesneleri ve yardımcı programları
- [x] shadow - Kullanıcı hesapları yönetimi için araçlar
- [x] slang - Bir çok metin gösterici yazılım tarfından kullanılan konsol görüntüleme kütüphanesi //__ why that is not in main?__
- [ ] snappy - Linux için sıkıştırma/ayıklama kütüphanesidir. // *https://github.com/google/snappy/archive/1.1.3.tar.gz*
- [x] spidermonkey - Javascript C Kitaplığı
- [ ] sqlite - Bir C kütüphanesi içindeki bir SQL veritabanı motoru // *BLFS http://sqlite.org/2015/sqlite-autoconf-3090200.tar.gz*
- [x] sysfsutils - Çeşitli sistem araç ve gereçleri
- [x] sysvinit - Programs which control basic system processes
- [x] tar - GNU dosya arşivleme uygulaması
- [x] tcp-wrappers - TCP Wrappers
- [x] texinfo - GNU info (bilgi) programı ve araçları
- [x] time - Bir programın sistem kaynak kullanımını izleyen GNU aracı // BLFS
- [x] timezone - Zamandilimi veri dosyaları ve araçları
- [ ] unifdef - The unifdef utility selectively processes conditional cpp(1) directives // *http://dotat.at/prog/unifdef/unifdef-2.11.tar.xz*
- [ ] unzip - pkzip ile sıkıştırılmış dosyalar için açıcı // *BLFS http://downloads.sourceforge.net/infozip/unzip60.tar.gz*
- [x] urlgrabber - Python için yüksek seviyeli, platform bağımsız bir url-grabber kütüphanesi
- [x] usbutils - USB listeleme araçları // BLFS
- [x] util-linux - Çeşitli kullanışlı Linux araçları
- [ ] util-macros - X.Org X11 Autotools makroları // * BLFS http://ftp.x.org/pub/individual/util/util-macros-1.19.0.tar.bz2*
- [x] v86d - uvesafb için kullanıcı uzayı yardımcısı
- [x] vixie-cron - Tam teşekküllü bir crond uyarlaması
- [x] which - Verilen komutun çalıştırma yolundaki önceliğe göre yerini gösterir // BLFS
- [x] wireless-tools - Kablosuz ağ kartlarını yapılandırmak için kullanılan bir araç seti // BLFS 29 da biz 30 dayız.
- [x] xcb-proto - XCB protokol tanımlamaları
- [ ] xmlto - XML ve DocBook için dönüşüm aracı // * BLFS https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.28.tar.bz2*
- [ ] xorg-proto - X.Org Protokol Başlıkları // * BLFS check pls http://www.linuxfromscratch.org/blfs/view/svn/x/x7proto.html*
- [ ] xorg-util - X.Org araçları // * check ftp://mirror.csclub.uwaterloo.ca/x.org/individual/util *
- [x] xtrans - X.Org trans kitaplığı.
- [x] xz - XZ sıkıştırma araçları
- [ ] yacc - Yacc: Yet Another Compiler-Compiler
- [ ] yasm - Bir çok sentaks ve mimari destekleyen Assembler // *http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz*
- [x] zip - ZIP programı (şifreleme desteği ile birlikte)
- [x] zlib - Standart sıkıştırma/açma kütüphanesi
dosyanın en güncel hali için: https://gist.github.com/ertugerata/3dd26e482f0f928b7bc9
+6 -75
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -13,7 +14,7 @@
<IsA>library</IsA>
<Summary>A high-quality and portable font engine</Summary>
<Description>FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output. It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well.</Description>
<Archive sha1sum="cd2b144205dd2c61693e2d861069367aa3dde1bc" type="tarbz2">mirrors://sourceforge/freetype/freetype-2.6.tar.bz2</Archive>
<Archive sha1sum="6c98bd5d0be313207c37ca23d25faf983486aee5" type="tarbz2">mirrors://sourceforge/freetype/freetype-2.6.3.tar.bz2</Archive>
<BuildDependencies>
<Dependency>zlib-devel</Dependency>
<Dependency>bzip2</Dependency>
@@ -72,82 +73,12 @@
</Package>
<History>
<Update release="11">
<Date>2015-07-29</Date>
<Version>2.6</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="10">
<Date>2015-05-22</Date>
<Version>2.5.5</Version>
<Comment>Version bump.</Comment>
<Name>Ayhan Yalçınsoy</Name>
<Email>ayhanyalcinsoy@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2014-05-11</Date>
<Version>2.5.3</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2014-03-29</Date>
<Version>2.5.3</Version>
<Comment>Version bump</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-12-11</Date>
<Version>2.5.2</Version>
<Comment>Version bump, cleanup.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2013-11-26</Date>
<Version>2.5.1</Version>
<Comment>Version bump</Comment>
<Name>Richard de Bruin</Name>
<Email>richdb@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-10-28</Date>
<Version>2.5.0.1</Version>
<Comment>rebuild.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-07-26</Date>
<Version>2.5.0.1</Version>
<Comment>Fix deps,release bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-06-28</Date>
<Version>2.5.0.1</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-01-14</Date>
<Version>2.4.11</Version>
<Comment>New release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-24</Date>
<Version>2.4.10</Version>
<Date>2016-03-13</Date>
<Version>2.6.3</Version>
<Comment>First release</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
<Name>Alihan Öztürk</Name>
<Email>alihan@pisilinux.org</Email>
</Update>
</History>
</PISI>
+5 -5
View File
@@ -1,10 +1,10 @@
<PISI>
<SourceName>PisiLinux</SourceName>
<Version>1.0</Version>
<Description xml:lang="tr">PisiLinux 1.0 Deposu</Description>
<Description xml:lang="en">PisiLinux 1.0 Repository</Description>
<Description xml:lang="es">PisiLinux 1.0 Repositorio</Description>
<Description xml:lang="nl">PisiLinux 1.0 Opslagplaats</Description>
<Version>2.0</Version>
<Description xml:lang="tr">PisiLinux 2.0 Core Deposu</Description>
<Description xml:lang="en">PisiLinux 2.0 Core Repository</Description>
<Description xml:lang="es">PisiLinux 2.0 Core Repositorio</Description>
<Description xml:lang="nl">PisiLinux 2.0 Core Opslagplaats</Description>
<Type>Core</Type>
<BinaryName>PisiLinux</BinaryName>
<Obsoletes>
+1 -1
View File
@@ -15,7 +15,7 @@ import lzma
import piksemel
pisirepouri = "http://ciftlik.pisilinux.org/pisi-2.0/pisi-index.xml.xz"
pisirepouri = "http://ciftlik.pisilinux.org/2.0-Beta/pisi-index.xml.xz"
svnrepouri = "https://github.com/ertugerata/core/raw/master/pisi-index.xml.xz"
def getIndex(uri):
+3 -16
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
@@ -35,26 +36,12 @@
</Package>
<History>
<Update release="3">
<Update release="1">
<Date>2015-04-01</Date>
<Version>9</Version>
<Comment>Release bump.</Comment>
<Comment>First release</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-10-29</Date>
<Version>9</Version>
<Comment>Rebuild</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-08-23</Date>
<Version>9</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+20 -4
View File
@@ -19,7 +19,15 @@ def builddiet():
autotools.make("distclean")
autotools.autoreconf("-fi")
autotools.configure('ac_cv_lib_dl_dlopen=no \
autotools.configure('--with-thin-check= \
--with-thin-dump= \
--with-thin-repair= \
--with-thin-restore= \
--with-cache-check= \
--with-cache-dump= \
--with-cache-repair= \
--with-cache-restore= \
ac_cv_lib_dl_dlopen=no \
--with-staticdir="/sbin" \
--enable-debug \
--with-optimisation=\"%s -Os\" \
@@ -36,8 +44,8 @@ def builddiet():
--with-systemdsystemunitdir=no \
--enable-udev_sync' % get.CFLAGS())
pisitools.dosed("lib/misc/configure.h","rpl_malloc","malloc")
pisitools.dosed("lib/misc/configure.h","rpl_realloc","realloc")
#pisitools.dosed("lib/misc/configure.h","rpl_malloc","malloc")
#pisitools.dosed("lib/misc/configure.h","rpl_realloc","realloc")
autotools.make("-j1 -C include")
autotools.make("-j1 -C lib LIB_SHARED= VERSIONED_SHLIB=")
@@ -58,7 +66,15 @@ def setup():
pisitools.dosed("conf/example.conf.in", "use_lvmetad = 0", "use_lvmetad = 1")
autotools.autoreconf("-fi")
autotools.configure("--enable-lvm1_fallback \
autotools.configure("--with-thin-check= \
--with-thin-dump= \
--with-thin-repair= \
--with-thin-restore= \
--with-cache-check= \
--with-cache-dump= \
--with-cache-repair= \
--with-cache-restore= \
--enable-lvm1_fallback \
--with-default-pid-dir=/run \
--with-default-run-dir=/run/lvm \
--with-default-locking-dir=/run/lock/lvm \
+12 -49
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -12,16 +13,16 @@
<IsA>app:console</IsA>
<Summary>Userland logical volume management tools</Summary>
<Description>LVM2 includes all of the support for handling read/write operations physical and logical volumes.</Description>
<Archive sha1sum="4f45406eb122443a0a9a3f2d338d5203d94d93de" type="targz">ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.118.tgz</Archive>
<Archive sha1sum="2a7cce6407d91847731d8f2ca2b4ba7dee03225a" type="targz">ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.142.tgz</Archive>
<BuildDependencies>
<Dependency releaseFrom="9">libutil-linux-devel</Dependency>
<Dependency>libutil-linux-devel</Dependency>
<Dependency>eudev-devel</Dependency>
</BuildDependencies>
<Patches>
<!--<Patch level="1">lvm2-2.02.63-always-make-static-libdm.patch</Patch>
<Patch level="1">lvm2-2.02.92-dynamic-static-ldflags.patch</Patch>
<Patch level="1">lvm2-2.02.105-pthread-pkgconfig.patch</Patch>
<Patch>lvm2-2.02.106-static-pkgconfig-libs.patch</Patch>-->
<Patch>lvm2-2.02.106-static-pkgconfig-libs.patch</Patch>-->
</Patches>
</Source>
@@ -34,6 +35,7 @@
<Description>Device-mapper includes the driver enables the definition of new block devices composed of ranges of sectors of existing devices to define disk partitions or logical volumes.</Description>
<Files>
<Path fileType="executable">/usr/sbin/dmsetup</Path>
<Path fileType="executable">/usr/sbin/dmstats</Path>
<Path fileType="library">/usr/lib/libdevmapper.a</Path>
<Path fileType="library">/usr/lib/libdevmapper.so*</Path>
<Path fileType="data">/lib/udev/rules.d/10-dm.rules</Path>
@@ -42,6 +44,7 @@
<Path fileType="doc">/usr/share/doc/VERSION_DM</Path>
<Path fileType="doc">/usr/share/doc/WHATS_NEW_DM</Path>
<Path fileType="man">/usr/share/man/man8/dmsetup.8</Path>
<Path fileType="man">/usr/share/man/man8/dmstats.8</Path>
</Files>
</Package>
@@ -180,58 +183,18 @@
<Description>Number of utilities for creating, checking, and repairing logical volumes - statically linked for initramfs.</Description>
<Files>
<Path fileType="executable">/sbin/lvm.static</Path>
<Path fileType="library">/usr/lib/liblvm2app.a</Path>
<Path fileType="library">/usr/lib/liblvm2cmd.a</Path>
</Files>
</Package>
<History>
<Update release="7">
<Date>2015-05-02</Date>
<Version>2.02.118</Version>
<Comment>Version bump.</Comment>
<Update release="1">
<Date>2016-03-13</Date>
<Version>2.02.142</Version>
<Comment>First release</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="6">
<Date>2014-09-04</Date>
<Version>2.02.111</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-05-09</Date>
<Version>2.02.106</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-04-07</Date>
<Version>2.02.105</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-11-09</Date>
<Version>2.02.103</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-07-26</Date>
<Version>2.02.98</Version>
<Comment>Fix dep, release bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptanan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-14</Date>
<Version>2.02.98</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+6 -33
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -12,7 +13,7 @@
<IsA>app:console</IsA>
<Summary>Utility to control Linux MD devices (software RAID arrays)</Summary>
<Description>mdadm is used to create, manage, and monitor Linux MD (software RAID) devices.</Description>
<Archive sha1sum="c649601d84553501c2f3b452cf93d1fbc53f976a" type="tarxz">https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-3.3.2.tar.xz</Archive>
<Archive sha1sum="0b6c284970567bfa30dbc14ea5c0e2320582b80c" type="tarxz">https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-3.4.tar.xz</Archive>
</Source>
<Package>
@@ -51,40 +52,12 @@
</Package>
<History>
<Update release="5">
<Date>2015-05-25</Date>
<Version>3.3.2</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-05-17</Date>
<Version>3.3</Version>
<Comment>Rebuild. Fixed service.py file</Comment>
<Name>Aydın Demirel</Name>
<Email>aydin.demirel@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-04-13</Date>
<Version>3.3</Version>
<Comment>mdadm-static is a part of system.base now.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2014-01-31</Date>
<Version>3.3</Version>
<Comment>Ver. bump, rebuild</Comment>
<Name>Kamil Atlı</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-14</Date>
<Version>3.2.6</Version>
<Date>2016-03-13</Date>
<Version>3.4</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
def setup():
#for i in ["mtools.texi"]:
# pisitools.dosed(i, "/usr/local/etc", "/etc")
shelltools.export("INSTALL_PROGRAM", "install")
autotools.autoreconf("-fi")
autotools.configure("--prefix=/usr \
--sysconfdir=/etc/mtools \
--includedir=/usr/src/linux/include")
def build():
autotools.make()
pisitools.dosed("mtools.conf","SAMPLE FILE","#SAMPLE FILE")
def install():
autotools.rawInstall('-j1 DESTDIR="%s"' % get.installDIR())
pisitools.insinto("/etc/mtools","mtools.conf")
pisitools.dodoc("COPYING", "README*", "Release.notes")
+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>mtools</Name>
<Homepage>http://mtools.linux.lu/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>Utilities to access MS-DOS disks without mounting them</Summary>
<Description>Mtools are utilities to access MS-DOS disks without mounting them.</Description>
<Archive sha1sum="d703db71a409837a37db10a09ef63a35183f7565" type="targz">mirrors://gnu/mtools/mtools-4.0.18.tar.gz</Archive>
</Source>
<Package>
<Name>mtools</Name>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="config">/etc</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="info">/usr/share/info</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2014-02-12</Date>
<Version>4.0.18</Version>
<Comment>First release</Comment>
<Name>Richard de Bruin</Name>
<Email>richdb@pisilinux.org</Email>
</Update>
</History>
</PISI>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>mtools</Name>
<Summary xml:lang="tr">MS-DOS (Windows) disketlerinize -mount ile bağlamadan- erişim araçları</Summary>
<Description xml:lang="tr">Mtools diskinizdeki MS-DOS (Windows) bölümlerine -mount komutu ile bağlamadan- erişebilmek için gereken araç setidir.</Description>
</Source>
</PISI>
+12 -136
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -17,22 +18,23 @@
<IsA>data</IsA>
<Summary>Firmware files used by the Linux kernel</Summary>
<Description>linux-firmware contains different firmware files required for some devices to operate correctly.</Description>
<!-- linux-firmware commit: commit f88e5c2e2ff57026ce8028ba4dde8e7325f251a4 2015-09-24 -->
<Archive sha1sum="053e48266c07116bf86d0848655e9c0c02076609" type="tarbz2">http://source.pisilinux.org/1.0/linux-firmware/linux-firmware-20150924.tar.bz2</Archive>
<!-- linux-firmware commit: 40e9ae84308274b91ac069fba2f1a290fcdc83fc 2016-01-11 -->
<Archive sha1sum="03d895382f5c1c4ec0545143970ae2b79ee430fb" type="tarbz2">http://sourceforge.net/projects/pisilinux/files/source/linux-firmware-20160111.tar.bz2</Archive>
<Archive sha1sum="dd685266f7bc0acb0d455462637d23e3e895bc96" type="tarxz" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/common-fw.tar.xz</Archive>
<Archive sha1sum="b2bb7fce3ea67d131f543a48134f7a65f2a8d834" type="tarxz" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware-ipw.tar.xz</Archive>
<Archive sha1sum="a5a616a9f765cf9cbb224deb7ccefdc82a7fe4d9" type="tarbz2" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/firmware-nonfreebox-2-tar.bz2</Archive>
<Archive sha1sum="6c18b28e62637fb809eaff89fff623ae1d470500" type="tarbz2" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/ar9170.tar.bz2</Archive>
<Archive sha1sum="aa3b414c2948be5f226a25fa5f37e56fd659a3bb" type="tarbz2" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/ipw2x00-firmware.tar.bz2</Archive>
<Archive sha1sum="f7ecf5412b7818871fa2798f1b314f8ddddb494e" type="tarbz2" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/aic94xx-seq.tar.bz2</Archive>
<Archive sha1sum="9be626663e9b9d15278f2b5cd1c916570eb62727" type="tarbz2" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/zd12x1-firmware.tar.bz2</Archive>
<Archive sha1sum="16d5f4dcc90f978732a9a5b3b0347672a6cc4c36" type="tarbz2" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/accessrunner-firmware.tar.bz2</Archive>
<Archive sha1sum="e40729d30ad6d7a6c88b90ee7bc5fbaeb9458cb7" type="tarbz2" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/rtl8192se-firmware.tar.bz2</Archive>
<Archive sha1sum="5d333e75f02a57861565337c14f6944090a242a8" type="tarxz" target="linux-firmware/mix">http://source.pisilinux.org/erdinc/firmware/nouveau-1.tar.xz</Archive>
<Archive sha1sum="ff9e7f4b120476a90cd3fb69d76240166c4ff2a5" type="tarbz2" target="linux-firmware/mix">http://sourceforge.net/projects/pisilinux/files/source/zd12x1.tar.bz2</Archive>
<Archive sha1sum="3239212ae7c5f60baa749764dcb8f5189e1e2f13" type="tarxz" target="linux-firmware/mix">http://sourceforge.net/projects/pisilinux/files/source/nouveau-340-32.tar.xz</Archive>
<AdditionalFiles>
<AdditionalFile target="intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq">fw/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq</AdditionalFile>
<!--AdditionalFile target="intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq">fw/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq</AdditionalFile-->
<AdditionalFile target="iwlwifi-7260-14.ucode">iwlwifi-7260-14.ucode</AdditionalFile>
<AdditionalFile target="iwlwifi-7260-15.ucode">iwlwifi-7260-15.ucode</AdditionalFile>
<AdditionalFile target="iwlwifi-7260-16.ucode">iwlwifi-7260-17.ucode</AdditionalFile>
</AdditionalFiles>
</Source>
@@ -48,138 +50,12 @@
</Package>
<History>
<Update release="19">
<Date>2015-09-06</Date>
<Version>20150924</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="18">
<Date>2015-09-06</Date>
<Version>20150824</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="17">
<Date>2015-07-20</Date>
<Version>20150716</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="16">
<Date>2015-03-26</Date>
<Version>20150320</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="15">
<Date>2015-02-14</Date>
<Version>20150214</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="14">
<Date>2014-12-16</Date>
<Version>20141216</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="13">
<Date>2014-11-07</Date>
<Version>20141107</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="12">
<Date>2014-07-23</Date>
<Version>20140603</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin.bojara@pisilinux.org</Email>
</Update>
<Update release="11">
<Date>2014-04-02</Date>
<Version>20140316</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="10">
<Date>2014-03-01</Date>
<Version>20140217</Version>
<Comment>Version bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2013-11-30</Date>
<Version>20131013</Version>
<Comment>Remove unneeded build dep,fix unpack problem.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="8">
<Date>2013-11-23</Date>
<Version>20131013</Version>
<Comment>Version bump to 20131013 git.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-09-30</Date>
<Version>20130811</Version>
<Comment>add update Intel-Bluetooth patchs</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2013-08-11</Date>
<Version>20130811</Version>
<Comment>add update patchs</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-07-19</Date>
<Version>20130609</Version>
<Comment>add update patchs</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-06-09</Date>
<Version>20130609</Version>
<Comment>bump</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-04-07</Date>
<Version>20130421</Version>
<Comment>bump</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-03-07</Date>
<Version>20130224</Version>
<Comment>bump</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-12-12</Date>
<Version>20121212</Version>
<Date>2016-01-22</Date>
<Version>20160111</Version>
<Comment>First release</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
+74
View File
@@ -0,0 +1,74 @@
'''
Created on 24-12-2012
@author: marcin
'''
import os
import re
rootpath = "."
specfile = "pspec.xml"
newcomment = "First release"
newrelease = "1"
relative_backup_path = "../backup"
def read_file(path):
with open(path) as f:
return f.read().strip()
def reset_history(spec):
release = re.compile("(.*?release\s*=\s*)[\"\']\d+[\"\'](.*?)")
newspec = ''
history = False
update1 = False
skipline = False
for line in spec.split("\n"):
if "</History>" in line: history = False
if "<History>" in line: history = True
if history:
if "</Update>" in line:
if not update1: newspec = "\n".join((newspec, line))
update1 = True
if update1: continue
else:
if "<Update" in line: line = re.sub(release, r'\1"%s"\2' % newrelease, line)
elif "<Comment" in line:
if not "</Comment" in line:
skipline = True
if "</Comment" in line:
skipline = False
line = " " * 12 + "<Comment>%s</Comment>" % newcomment
if not skipline: newspec = "\n".join((newspec, line))
else: newspec = "\n".join((newspec, line))
return newspec
if __name__ == '__main__':
backup_path = os.path.normpath(os.path.join(rootpath, relative_backup_path))
if not os.path.isdir(backup_path):
os.makedirs(backup_path)
else:
suffix = 0
parent_backup = os.path.dirname(backup_path)
base_name = os.path.basename(relative_backup_path)
for d in os.listdir(parent_backup):
if d.startswith(base_name):
ext = d.replace(base_name, '')
if os.path.isdir("%s/%s" % (parent_backup, d)) and ext.isdigit():
if int(ext) > suffix:
suffix = int(ext)
suffix +=1
suffix = "0%d" % suffix if suffix < 10 else str(suffix)
os.rename(backup_path, backup_path + suffix)
os.makedirs(backup_path)
for root, dirs, files in os.walk(rootpath):
if specfile in files:
f = "%s/%s" % (root, specfile)
print(f)
spec = read_file(f)
bf = "%s/%s" % (os.path.normpath(root.replace(rootpath, relative_backup_path)), specfile)
os.makedirs(os.path.dirname(bf))
open(bf, "w").write(spec)
open(bf, "a").write("\n")
open(f, "w").write(reset_history(spec))
open(f, "a").write("\n")
+7 -237
View File
@@ -1,3 +1,4 @@
<PISI>
<Source>
<Name>module-bbswitch</Name>
@@ -11,7 +12,7 @@
<Summary>Kernel module allowing to switch dedicated graphics card on Optimus laptops</Summary>
<Description>kernel module allowing to switch dedicated graphics card on Optimus laptops</Description>
<BuildDependencies>
<Dependency version="4.2.5">kernel-module-headers</Dependency>
<Dependency version="4.4.4">kernel-module-headers</Dependency>
</BuildDependencies>
<Archive sha1sum="e282ee682d794e3962baa4dead01917c42571e78" type="targz">https://github.com/Bumblebee-Project/bbswitch/archive/v0.8.tar.gz</Archive>
<Patches>
@@ -20,7 +21,7 @@
<Package>
<Name>module-bbswitch</Name>
<RuntimeDependencies>
<Dependency version="4.2.5">kernel</Dependency>
<Dependency version="4.4.4">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -34,243 +35,12 @@
</Package>
<History>
<Update release="33">
<Date>2015-11-30</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.2.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="32">
<Date>2015-11-27</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.2.4.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="31">
<Date>2015-10-05</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.2.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="30">
<Date>2015-10-01</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.2.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="29">
<Date>2015-09-23</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.1.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="28">
<Date>2015-09-18</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.1.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="27">
<Date>2015-08-18</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.1.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="26">
<Date>2015-08-13</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.1.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="25">
<Date>2015-07-23</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.1.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="24">
<Date>2015-07-20</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.1.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="23">
<Date>2015-07-13</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.0.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="22">
<Date>2015-06-30</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.0.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="21">
<Date>2015-06-24</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.0.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="20">
<Date>2015-06-16</Date>
<Version>0.8</Version>
<Comment>Rebuild for new kernel</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="19">
<Date>2015-05-22</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.19.8</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="18">
<Date>2015-05-05</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.19.6</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="17">
<Date>2015-04-24</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.19.5</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="16">
<Date>2015-04-16</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.19.4</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="15">
<Date>2015-04-02</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.19.3</Comment>
<Name>Hakan Yıldız</Name>
<Email>hknyldz93@gmail.com</Email>
</Update>
<Update release="14">
<Date>2015-03-08</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.19.1</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="13">
<Date>2015-03-01</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.19.0</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="12">
<Date>2015-01-28</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.18.3</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="11">
<Date>2015-01-09</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.18.1</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="10">
<Date>2014-11-29</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.17.4</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2014-10-18</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.17.1</Comment>
<Name>Kamil Atlı</Name>
<Email>suvari@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2014-09-19</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.16.3</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2014-09-03</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.16.1</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2014-07-24</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.15.6</Comment>
<Name>Vedat Demir</Name>
<Email>vedat@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-06-15</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.15.0</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-05-29</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.14.4.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-05-02</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.14.2.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-04-15</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.13.10.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2014-03-29</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel 3.13.6.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2014-03-09</Date>
<Date>2016-03-07</Date>
<Version>0.8</Version>
<Comment>First release.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
<Comment>First release</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
+7 -370
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -15,7 +16,7 @@
<Archive sha1sum="e02beac9cc713011551c483ae5f20f065f5b88c7" type="targz" target="i686">http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz</Archive>
<Archive sha1sum="bd55f1fdc6b0a4d0a70dc4ba4bb4169a824e238c" type="targz" target="x86_64">http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz</Archive>
<BuildDependencies>
<Dependency version="4.2.5">kernel-module-headers</Dependency>
<Dependency version="4.4.4">kernel-module-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">patch/linux-40.patch</Patch>
@@ -32,7 +33,7 @@
<Package>
<Name>module-broadcom-wl</Name>
<RuntimeDependencies>
<Dependency version="4.2.5">kernel</Dependency>
<Dependency version="4.4.4">kernel</Dependency>
<Dependency release="current">module-broadcom-wl-userspace</Dependency>
</RuntimeDependencies>
<Replaces>
@@ -64,376 +65,12 @@
</Package>
<History>
<Update release="53">
<Date>2015-11-30</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.2.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="52">
<Date>2015-11-27</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.2.4.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="51">
<Date>2015-10-05</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.2.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="50">
<Date>2015-10-01</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.2.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="49">
<Date>2015-09-23</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.1.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="48">
<Date>2015-09-18</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.1.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="47">
<Date>2015-08-18</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.1.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="46">
<Date>2015-08-13</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.1.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="45">
<Date>2015-07-23</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.1.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="44">
<Date>2015-07-20</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.1.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="43">
<Date>2015-07-13</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.0.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="42">
<Date>2015-06-30</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.0.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="41">
<Date>2015-06-16</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.0.6</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="40">
<Date>2015-06-16</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.0.5</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="38">
<Date>2015-05-22</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.19.6</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="37">
<Date>2015-05-05</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.19.6</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="36">
<Date>2015-04-24</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.19.5</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="35">
<Date>2015-04-16</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.19.4</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="34">
<Date>2015-04-02</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.19.3</Comment>
<Name>Hakan Yıldız</Name>
<Email>hknyldz93@gmail.com</Email>
</Update>
<Update release="33">
<Date>2015-03-08</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.19.1</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="32">
<Date>2015-03-01</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.19.0</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="31">
<Date>2015-02-28</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.18.3</Comment>
<Name>Hakan Yıldız</Name>
<Email>hknyldz93@gmail.com</Email>
</Update>
<Update release="30">
<Date>2014-11-29</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.17.4</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="29">
<Date>2014-10-19</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.17.1</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="28">
<Date>2014-09-19</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.16.3</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="27">
<Date>2014-09-03</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 3.16.1</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="26">
<Date>2014-07-23</Date>
<Version>6.30.223.248</Version>
<Comment>Version bump for kernel 3.15.6</Comment>
<Name>Vedat Demir</Name>
<Email>vedat@pisilinux.org</Email>
</Update>
<Update release="25">
<Date>2014-06-15</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for kernel 3.15.0</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="24">
<Date>2014-05-29</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for kernel 3.14.4.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="23">
<Date>2014-05-02</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for kernel 3.14.2.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="22">
<Date>2014-04-15</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for kernel 3.13.10.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="21">
<Date>2014-03-29</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for 3.13.6</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="20">
<Date>2014-03-01</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for 3.12.13</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="19">
<Date>2014-01-17</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for 3.12.8</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="18">
<Date>2013-12-17</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for 3.12.5</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="17">
<Date>2013-12-14</Date>
<Version>6.30.223.141</Version>
<Comment>Rebuild for 3.12.5</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="16">
<Date>2013-11-23</Date>
<Version>5.100.82.112</Version>
<Comment>Rebuild for 3.10.20</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="15">
<Date>2013-11-05</Date>
<Version>5.100.82.112</Version>
<Comment>Rebuild for 3.10.18</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="14">
<Date>2013-10-09</Date>
<Version>5.100.82.112</Version>
<Comment>fix solution broadcom-wl</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="13">
<Date>2013-09-28</Date>
<Version>5.100.82.112</Version>
<Comment>fix solution broadcom-wl</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="12">
<Date>2013-09-18</Date>
<Version>5.100.82.112</Version>
<Comment>fix solution broadcom-wl</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="11">
<Date>2013-09-05</Date>
<Version>5.100.82.112</Version>
<Comment>fix solution broadcom-wl</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2013-08-30</Date>
<Version>5.100.82.112</Version>
<Comment>3.10.10</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2013-08-20</Date>
<Version>5.100.82.112</Version>
<Comment>3.10.9</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2013-08-20</Date>
<Version>5.100.82.112</Version>
<Comment>3.10.x</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2013-08-11</Date>
<Version>5.100.82.112</Version>
<Comment>without blacklist</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-07-26</Date>
<Version>5.100.82.112</Version>
<Comment>Rebuild for Kernel 3.10.x</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2013-06-15</Date>
<Version>5.100.82.112</Version>
<Comment>rebuild for Kernel 3.8.13</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-05-26</Date>
<Version>5.100.82.112</Version>
<Comment>rebuild for Kernel 3.9.4</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-05-26</Date>
<Version>5.100.82.112</Version>
<Comment>Kernel 3.9.3</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-02-07</Date>
<Version>5.100.82.112</Version>
<Comment>Runtime dep</Comment>
<Name>Ertan Güven</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-02-01</Date>
<Version>5.100.82.112</Version>
<Comment>bump+fix for new kernel-line</Comment>
<Name>Erdinç Gültekin</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2011-09-15</Date>
<Version>5.100.82.38</Version>
<Date>2016-03-07</Date>
<Version>6.30.223.248</Version>
<Comment>First release</Comment>
<Name>Pisi Linux Admins</Name>
<Email>admins@pisilinux.org</Email>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -12,16 +13,16 @@
<IsA>driver</IsA>
<Summary>Kernel modules for VirtualBox guest machines</Summary>
<Description>This package provides the kernel modules needed for mouse integration and shared folder support between VirtualBox host and guest systems.</Description>
<Archive sha1sum="cd1f7c62e17ef3d9b5f7aef7d83fd160355eb396" type="tarxz">http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-guest-5.0.4.tar.xz</Archive>
<Archive sha1sum="4fee388ca9ce5ab342f11edcc0631a694029665b" type="tarxz">http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-guest-5.0.12.tar.xz</Archive>
<BuildDependencies>
<Dependency version="4.2.5">kernel-module-headers</Dependency>
<Dependency version="4.4.4">kernel-module-headers</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>module-virtualbox-guest</Name>
<RuntimeDependencies>
<Dependency version="4.2.5">kernel</Dependency>
<Dependency version="4.4.4">kernel</Dependency>
<Dependency>baselayout</Dependency>
<Dependency version="current">module-virtualbox-guest-userspace</Dependency>
</RuntimeDependencies>
@@ -52,390 +53,12 @@
</Package>
<History>
<Update release="54">
<Date>2015-11-30</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.2.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="53">
<Date>2015-11-27</Date>
<Version>5.0.4</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="52">
<Date>2015-10-05</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.2.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="51">
<Date>2015-10-01</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.2.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="50">
<Date>2015-08-23</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="49">
<Date>2015-08-18</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="48">
<Date>2015-08-13</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="47">
<Date>2015-07-23</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="46">
<Date>2015-07-20</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="45">
<Date>2015-07-13</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.0.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="45">
<Date>2015-06-24</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.0.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="44">
<Date>2015-06-24</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.0.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="43">
<Date>2015-06-09</Date>
<Version>4.3.28</Version>
<Comment>Version Bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="42">
<Date>2015-05-14</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.8</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="41">
<Date>2015-05-05</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.6</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="40">
<Date>2015-04-24</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.5</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="39">
<Date>2015-04-16</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.4</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="38">
<Date>2015-04-02</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.3</Comment>
<Name>Hakan Yıldız</Name>
<Email>hknyldz93@gmail.com</Email>
</Update>
<Update release="37">
<Date>2015-03-08</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.1</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="36">
<Date>2015-03-01</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.0</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="35">
<Date>2015-01-28</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.18.3</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="34">
<Date>2015-01-09</Date>
<Version>4.3.20</Version>
<Comment>Version bump, kernel 3.18.1</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="33">
<Date>2014-11-29</Date>
<Version>4.3.18</Version>
<Comment>Version bump, kernel 3.17.4</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="32">
<Date>2014-10-19</Date>
<Version>4.3.18</Version>
<Comment>Version bump, kernel 3.17.1</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="31">
<Date>2014-09-19</Date>
<Version>4.3.16</Version>
<Comment>Version bump, kernel 3.16.3</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="30">
<Date>2014-09-03</Date>
<Version>4.3.14</Version>
<Comment>Rebuild for kernel 3.16.1</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="29">
<Date>2014-07-24</Date>
<Version>4.3.14</Version>
<Comment>Version bump for kernel 3.15.6</Comment>
<Name>Vedat Demir</Name>
<Email>vedatn@pisilinux.org</Email>
</Update>
<Update release="28">
<Date>2014-06-15</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.15.0</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="27">
<Date>2014-05-29</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.14.4.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="26">
<Date>2014-05-02</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.14.2.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="25">
<Date>2014-04-15</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.13.10.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="24">
<Date>2014-04-07</Date>
<Version>4.3.10</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="23">
<Date>2014-03-29</Date>
<Version>4.3.8</Version>
<Comment>Rebuild for 3.13.6</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="22">
<Date>2014-03-09</Date>
<Version>4.3.8</Version>
<Comment>Rebuild for 3.12.13</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="21">
<Date>2014-03-01</Date>
<Version>4.3.8</Version>
<Comment>Rebuild for 3.12.13</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="20">
<Date>2014-01-17</Date>
<Version>4.3.6</Version>
<Comment>Rebuild for 3.12.8</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="19">
<Date>2013-12-21</Date>
<Version>4.3.6</Version>
<Comment>Version bump</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="18">
<Date>2013-12-17</Date>
<Version>4.3.2</Version>
<Comment>Rebuild for 3.12.5</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="17">
<Date>2013-12-12</Date>
<Version>4.3.2</Version>
<Comment>Rebuild for 3.12.5</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="16">
<Date>2013-11-23</Date>
<Version>4.3.2</Version>
<Comment>Rebuild for 3.10.20</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="15">
<Date>2013-11-11</Date>
<Version>4.3.2</Version>
<Comment>Version bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="14">
<Date>2013-11-05</Date>
<Version>4.2.18</Version>
<Comment>Rebuild for 3.10.18</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="13">
<Date>2013-10-10</Date>
<Version>4.2.18</Version>
<Comment>version bump</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="12">
<Date>2013-09-28</Date>
<Version>4.2.16</Version>
<Comment>3.10.13</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="11">
<Date>2013-09-18</Date>
<Version>4.2.16</Version>
<Comment>3.10.12</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2013-08-30</Date>
<Version>4.2.16</Version>
<Comment>3.10.10</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2013-08-20</Date>
<Version>4.2.16</Version>
<Comment>3.10.9</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2013-08-20</Date>
<Version>4.2.16</Version>
<Comment>Kernel 3.10.6</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-07-06</Date>
<Version>4.2.16</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2013-06-01</Date>
<Version>4.2.12</Version>
<Comment>Kernel 3.8.13</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-06-01</Date>
<Version>4.2.12</Version>
<Comment>Kernel 3.9.4</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-05-04</Date>
<Version>4.2.12</Version>
<Comment>Update</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-04-14</Date>
<Version>4.2.12</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-03-02</Date>
<Version>4.2.8</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2013-01-22</Date>
<Version>4.2.6</Version>
<Date>2016-03-07</Date>
<Version>5.0.12</Version>
<Comment>First release</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,39 @@
#
# https://forums.virtualbox.org/viewtopic.php?uid=80969&f=7&t=70150&start=0
# kernel 4.3-rc1 heads up
#
--- ./vboxdrv/linux/SUPDrv-linux.c.orig 2015-09-25 20:56:04.704532570 -0700
+++ ./vboxdrv/linux/SUPDrv-linux.c 2015-09-25 20:57:17.265521751 -0700
@@ -485,6 +485,7 @@
* opened, at least we'll blindly assume that here.
*/
#ifdef CONFIG_VBOXDRV_AS_MISC
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
rc = misc_deregister(&gMiscDeviceUsr);
if (rc < 0)
{
@@ -495,6 +496,10 @@
{
Log(("misc_deregister failed with rc=%#x on vboxdrv\n", rc));
}
+#else
+ misc_deregister(&gMiscDeviceUsr);
+ misc_deregister(&gMiscDeviceSys);
+#endif
#else /* !CONFIG_VBOXDRV_AS_MISC */
# ifdef CONFIG_DEVFS_FS
/*
--- ./vboxnetadp/linux/VBoxNetAdp-linux.c.orig 2015-09-25 20:55:42.309667865 -0700
+++ ./vboxnetadp/linux/VBoxNetAdp-linux.c 2015-09-25 20:58:49.331034237 -0700
@@ -436,7 +436,11 @@
vboxNetAdpShutdown();
/* Remove control device */
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
rc = misc_deregister(&g_CtlDev);
+ #else
+ misc_deregister(&g_CtlDev);
+ #endif
if (rc < 0)
{
printk(KERN_ERR "misc_deregister failed with rc=%x\n", rc);
+11 -406
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -12,16 +13,19 @@
<IsA>driver</IsA>
<Summary>Kernel modules for VirtualBox</Summary>
<Description>This package provides the kernel support for VirtualBox.</Description>
<Archive sha1sum="14e3d8630f779dc1349d9aa488fa7e6604b9ba3e" type="tarxz">http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-5.0.4.tar.xz</Archive>
<Archive sha1sum="19662922a8a696fe0eb37184024712a781d06a73" type="tarxz">http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-5.0.12.tar.xz</Archive>
<BuildDependencies>
<Dependency version="4.2.5">kernel-module-headers</Dependency>
<Dependency version="4.4.4">kernel-module-headers</Dependency>
</BuildDependencies>
<!--Patches>
<Patch>vbox_linux-4.3.diff</Patch>
</Patches-->
</Source>
<Package>
<Name>module-virtualbox</Name>
<RuntimeDependencies>
<Dependency version="4.2.5">kernel</Dependency>
<Dependency version="4.4.4">kernel</Dependency>
<Dependency version="current">module-virtualbox-userspace</Dependency>
</RuntimeDependencies>
<Files>
@@ -47,411 +51,12 @@
</Package>
<History>
<Update release="57">
<Date>2015-11-30</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.2.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="56">
<Date>2015-11-27</Date>
<Version>5.0.4</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="55">
<Date>2015-10-05</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.2.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="54">
<Date>2015-10-01</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.2.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="53">
<Date>2015-09-23</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="52">
<Date>2015-09-18</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="51">
<Date>2015-08-18</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="50">
<Date>2015-08-13</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.5.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="49">
<Date>2015-07-23</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.3.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="48">
<Date>2015-07-20</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.1.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="47">
<Date>2015-07-13</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.0.8.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="46">
<Date>2015-06-30</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.0.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="45">
<Date>2015-06-24</Date>
<Version>4.3.28</Version>
<Comment>Rebuild for kernel-4.0.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="44">
<Date>2015-06-09</Date>
<Version>4.3.28</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="43">
<Date>2015-05-14</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.8</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="42">
<Date>2015-05-05</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.6</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="41">
<Date>2015-04-24</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.5</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="40">
<Date>2015-04-16</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.4</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="39">
<Date>2015-04-02</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.3</Comment>
<Name>Hakan Yıldız</Name>
<Email>hknyldz93@gmail.com</Email>
</Update>
<Update release="38">
<Date>2015-03-08</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.1</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="37">
<Date>2015-03-01</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.19.0</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="36">
<Date>2015-01-28</Date>
<Version>4.3.20</Version>
<Comment>Rebuild for kernel 3.18.3</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="35">
<Date>2015-01-09</Date>
<Version>4.3.20</Version>
<Comment>Version bump, kernel 3.18.1</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="34">
<Date>2014-11-29</Date>
<Version>4.3.18</Version>
<Comment>Rebuild</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="33">
<Date>2014-11-21</Date>
<Version>4.3.18</Version>
<Comment>Rebuild</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="32">
<Date>2014-10-19</Date>
<Version>4.3.18</Version>
<Comment>Version bump, 4.3.18</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="31">
<Date>2014-09-19</Date>
<Version>4.3.16</Version>
<Comment>Version bump, 4.3.16</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="30">
<Date>2014-09-03</Date>
<Version>4.3.14</Version>
<Comment>Rebuild for kernel 3.16.1</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="29">
<Date>2014-07-24</Date>
<Version>4.3.14</Version>
<Comment>Version bump for kernel 3.15.6</Comment>
<Name>Vedat Demir</Name>
<Email>vedat@pisilinux.org</Email>
</Update>
<Update release="28">
<Date>2014-06-15</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.15.0</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="27">
<Date>2014-05-29</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.14.4.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="26">
<Date>2014-05-02</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.14.2.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="25">
<Date>2014-04-15</Date>
<Version>4.3.10</Version>
<Comment>Rebuild for kernel 3.13.10.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="24">
<Date>2014-04-07</Date>
<Version>4.3.10</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="23">
<Date>2014-03-29</Date>
<Version>4.3.8</Version>
<Comment>Rebuild for 3.13.6</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="22">
<Date>2014-03-09</Date>
<Version>4.3.8</Version>
<Comment>Rebuild for 3.12.13</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="21">
<Date>2014-03-01</Date>
<Version>4.3.8</Version>
<Comment>Rebuild for 3.12.13</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="20">
<Date>2014-01-17</Date>
<Version>4.3.6</Version>
<Comment>Rebuild for 3.12.8</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="19">
<Date>2013-12-22</Date>
<Version>4.3.6</Version>
<Comment>Version bump</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="18">
<Date>2013-12-17</Date>
<Version>4.3.2</Version>
<Comment>Rebuild for 3.12.5</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="17">
<Date>2013-12-12</Date>
<Version>4.3.2</Version>
<Comment>Rebuild for 3.12.5</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="16">
<Date>2013-11-23</Date>
<Version>4.3.2</Version>
<Comment>Rebuild for 3.10.20</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="15">
<Date>2013-11-11</Date>
<Version>4.3.2</Version>
<Comment>Version bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="14">
<Date>2013-11-05</Date>
<Version>4.2.18</Version>
<Comment>Rebuild for 3.10.18</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="13">
<Date>2013-10-09</Date>
<Version>4.2.18</Version>
<Comment>version bump</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="12">
<Date>2013-09-28</Date>
<Version>4.2.16</Version>
<Comment>3.10.13</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="11">
<Date>2013-09-18</Date>
<Version>4.2.16</Version>
<Comment>3.10.12</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2013-08-20</Date>
<Version>4.2.16</Version>
<Comment>3.10.10</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2013-08-20</Date>
<Version>4.2.16</Version>
<Comment>3.10.9</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2013-08-20</Date>
<Version>4.2.16</Version>
<Comment>Kernel 3.10.6</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2013-07-06</Date>
<Version>4.2.16</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-06-15</Date>
<Version>4.2.12</Version>
<Comment>Kernel 3.8.13</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2013-06-01</Date>
<Version>4.2.12</Version>
<Comment>Kernel 3.9.4</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-05-26</Date>
<Version>4.2.12</Version>
<Comment>Kernel 3.9.3</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-05-04</Date>
<Version>4.2.12</Version>
<Comment>Update</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-04-14</Date>
<Version>4.2.12</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-03-02</Date>
<Version>4.2.8</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2013-01-22</Date>
<Version>4.2.6</Version>
<Date>2016-03-07</Date>
<Version>5.0.12</Version>
<Comment>First release</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
+6 -47
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -15,7 +16,7 @@
<Description>module-ndiswrapper allows you to use Windows XP drivers for WLAN cards without proper Linux drivers.</Description>
<Archive sha1sum="75fbbda677fe91ee07a6f6a8e19b1f3e2479540f" type="targz">http://download.sourceforge.net/ndiswrapper/ndiswrapper-1.59.tar.gz</Archive>
<BuildDependencies>
<Dependency version="4.2.5">kernel-module-headers</Dependency>
<Dependency version="4.4.4">kernel-module-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch>support_kernel-4.0.patch</Patch>
@@ -29,7 +30,7 @@
<Package>
<Name>ndiswrapper</Name>
<RuntimeDependencies>
<Dependency version="4.2.5">kernel</Dependency>
<Dependency version="4.4.4">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -45,54 +46,12 @@
</Package>
<History>
<Update release="7">
<Date>2014-11-30</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.2.5.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2014-11-27</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.2.4.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-10-05</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.2.3.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-10-01</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.2.2.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-09-23</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.1.8.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2014-08-18</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.1.6.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2014-08-13</Date>
<Date>2016-03-07</Date>
<Version>1.59</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -83,9 +83,9 @@ diff -Nurp linux-4.2.2/Makefile linux-4.2.2-3rd/Makefile
net-y := net/
libs-y := lib/
core-y := usr/
diff -Nurp linux-4.2.2/scripts/kconfig/Makefile linux-4.2.2-3rd/scripts/kconfig/Makefile
--- linux-4.2.2/scripts/kconfig/Makefile 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-3rd/scripts/kconfig/Makefile 2015-09-29 23:04:06.298700940 +0300
diff -Nurp linux-4.4.0/scripts/kconfig/Makefile linux-4.4.0-3rd/scripts/kconfig/Makefile
--- linux-4.4.0/scripts/kconfig/Makefile
+++ linux-4.4.0-3rd/scripts/kconfig/Makefile
@@ -18,26 +18,26 @@ endif
# We need this, in case the user has it in its environment
unexport CONFIG_
@@ -144,9 +144,9 @@ diff -Nurp linux-4.2.2/scripts/kconfig/Makefile linux-4.2.2-3rd/scripts/kconfig/
+defconfig: $(obj)/conf 3rdparty/Makefile
ifeq ($(KBUILD_DEFCONFIG),)
$< $(silent) --defconfig $(Kconfig)
else
@@ -101,7 +101,7 @@ else
$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
else ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
@@ -104,26 +104,26 @@ else
$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG)
endif
-%_defconfig: $(obj)/conf
@@ -154,7 +154,11 @@ diff -Nurp linux-4.2.2/scripts/kconfig/Makefile linux-4.2.2-3rd/scripts/kconfig/
$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@)
@@ -112,14 +112,14 @@ configfiles=$(wildcard $(srctree)/kernel
-%.config: $(obj)/conf
+%.config: $(obj)/conf 3rdparty/Makefile
$(if $(call configfiles),, $(error No configuration exists for this target on this architecture))
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(configfiles)
+$(Q)yes "" | $(MAKE) -f $(srctree)/Makefile oldconfig
PHONY += kvmconfig
@@ -167,12 +171,13 @@ diff -Nurp linux-4.2.2/scripts/kconfig/Makefile linux-4.2.2-3rd/scripts/kconfig/
+xenconfig: xen.config 3rdparty/Makefile
@:
-PHONY += tinyconfig
+PHONY += tinyconfig 3rdparty/Makefile
tinyconfig:
PHONY += tinyconfig
-tinyconfig:
+tinyconfig: 3rdparty/Makefile
$(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config
@@ -183,6 +183,9 @@ gconf-objs := gconf.o zconf.tab.o
# Help text used by make help
@@ -186,6 +186,9 @@ gconf-objs := gconf.o zconf.tab.o
hostprogs-y := conf nconf mconf kxgettext qconf gconf
@@ -1,138 +0,0 @@
From:
https://github.com/lwfinger/rtl8723bs/commit/49fcb39bc7dc0b7ae61463d493c0b630dc6a27ca
From 49fcb39bc7dc0b7ae61463d493c0b630dc6a27ca Mon Sep 17 00:00:00 2001
From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Sat, 15 Aug 2015 10:51:20 -0500
Subject: [PATCH] rtl8723bs: Fix builds on kernel 4.2
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
[adapted to mga kernel / tmb]
Signed-off-by: Thomas Backlund <tmb@mageia.org>
---
hal/hal_com_phycfg.c | 38 +++++++++++++++++++-------------------
os_dep/ioctl_cfg80211.c | 5 +++++
2 files changed, 24 insertions(+), 19 deletions(-)
3rdparty/rtl8723bs/hal/hal_com_phycfg.c | 38 ++++++++++++++---------------
3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c | 5 +++
2 files changed, 24 insertions(+), 19 deletions(-)
diff -Nurp linux/3rdparty/rtl8723bs.orig/hal/hal_com_phycfg.c linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c
--- linux/3rdparty/rtl8723bs.orig/hal/hal_com_phycfg.c 2015-09-30 00:51:13.000000000 +0300
+++ linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c 2015-09-30 01:49:37.475440016 +0300
@@ -2254,7 +2254,7 @@ Hal_ChannelPlanToRegulation(
#ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
extern char *rtw_phy_file_path;
-static char file_path[PATH_MAX];
+static char rtl_file_path[PATH_MAX];
#define GetLineFromBuffer(buffer) strsep(&buffer, "\n")
@@ -2276,11 +2276,11 @@ phy_ConfigMACWithParaFile(
if ((pHalData->mac_reg_len == 0) && (pHalData->mac_reg == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -2375,11 +2375,11 @@ phy_ConfigBBWithParaFile(
if ((pBufLen != NULL) && (*pBufLen == 0) && (pBuf == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -2824,11 +2824,11 @@ phy_ConfigBBWithPgParaFile(
if ((pHalData->bb_phy_reg_pg_len == 0) && (pHalData->bb_phy_reg_pg == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -2904,11 +2904,11 @@ PHY_ConfigRFWithParaFile(
if ((pBufLen != NULL) && (*pBufLen == 0) && (pBuf == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -3178,11 +3178,11 @@ PHY_ConfigRFWithTxPwrTrackParaFile(
if ((pHalData->rf_tx_pwr_track_len == 0) && (pHalData->rf_tx_pwr_track == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -3527,11 +3527,11 @@ PHY_ConfigRFWithPowerLimitTableParaFile(
if ((pHalData->rf_tx_pwr_lmt_len == 0) && (pHalData->rf_tx_pwr_lmt == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
diff -Nurp linux/3rdparty/rtl8723bs.orig/os_dep/ioctl_cfg80211.c linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c
--- linux/3rdparty/rtl8723bs.orig/os_dep/ioctl_cfg80211.c 2015-09-30 00:51:13.000000000 +0300
+++ linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c 2015-09-30 01:49:37.476440020 +0300
@@ -587,7 +587,12 @@ void rtw_cfg80211_indicate_disconnect(_a
if (!padapter->mlmepriv.not_indic_disco) {
if(check_fwstate(&padapter->mlmepriv, _FW_LINKED))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))
+ cfg80211_disconnected(padapter->pnetdev, 0,
+ NULL, 0, true, GFP_ATOMIC);
+#else
cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);
+#endif
else
cfg80211_connect_result(padapter->pnetdev, NULL, NULL, 0, NULL, 0,
WLAN_STATUS_UNSPECIFIED_FAILURE, GFP_ATOMIC/*GFP_KERNEL*/);
@@ -1,23 +0,0 @@
From 842e61cb85813b1ed8a1646cbe6739950c0c9822 Mon Sep 17 00:00:00 2001
From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Thu, 7 May 2015 19:08:17 +0000
Subject: [PATCH] rtl8723bs: Fix Makefile to allow warnings
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git linux.old/3rdparty/rtl8723bs/Makefile linux/3rdparty/rtl8723bs/Makefile
index a4d9f45..4da73fa 100644
--- linux.old/3rdparty/rtl8723bs/Makefile
+++ linux/3rdparty/rtl8723bs/Makefile
@@ -3,7 +3,7 @@ EXTRA_CFLAGS += -O1
#EXTRA_CFLAGS += -O3
#EXTRA_CFLAGS += -Wall
#EXTRA_CFLAGS += -Wextra
-EXTRA_CFLAGS += -Werror
+#EXTRA_CFLAGS += -Werror
#EXTRA_CFLAGS += -pedantic
#EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,40 @@
From 61f9738d65094a6b18d22c7beb6bb8c3dc0606b9 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 26 Oct 2015 15:20:46 +0100
Subject: [PATCH] ACPI / video: Add a quirk to force acpi-video backlight on
Dell XPS L421X
Just like the Dell XPS 15 (L521X) the Dell XPS 14 (L421X) needs to use
the acpi-video backlight interface rather then the native one for backlight
control to work, add a quirk for this.
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1272633
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video_detect.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d3a384..daaf1c4 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -233,6 +233,15 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
},
},
{
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1272633 */
+ .callback = video_detect_force_video,
+ .ident = "Dell XPS14 L421X",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "XPS L421X"),
+ },
+ },
+ {
/* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
.callback = video_detect_force_video,
.ident = "Dell XPS15 L521X",
--
2.3.10
@@ -0,0 +1,70 @@
From ca45663819accf038291dbe2d67ed66dc48d714c Mon Sep 17 00:00:00 2001
From: Thomas Backlund <tmb@mageia.org>
Date: Sun, 29 Nov 2015 14:44:22 +0200
Subject: [PATCH] Revert "x86/mm/mtrr: Remove kernel internal MTRR interfaces:
unexport mtrr_add() and mtrr_del()"
This reverts commit 2baa891e42d84159b693eadd44f6fe1486285bdc.
It currently breaks nvidia304 driver.
Signed-of-by: Thomas Backlund <tmb@mageia.org>
---
Documentation/x86/mtrr.txt | 20 ++++----------------
arch/x86/kernel/cpu/mtrr/main.c | 2 ++
2 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/Documentation/x86/mtrr.txt b/Documentation/x86/mtrr.txt
index dc3e703..860bc3a 100644
--- a/Documentation/x86/mtrr.txt
+++ b/Documentation/x86/mtrr.txt
@@ -6,22 +6,10 @@ Luis R. Rodriguez <mcgrof@do-not-panic.com> - April 9, 2015
===============================================================================
Phasing out MTRR use
-MTRR use is replaced on modern x86 hardware with PAT. Direct MTRR use by
-drivers on Linux is now completely phased out, device drivers should use
-arch_phys_wc_add() in combination with ioremap_wc() to make MTRR effective on
-non-PAT systems while a no-op but equally effective on PAT enabled systems.
-
-Even if Linux does not use MTRRs directly, some x86 platform firmware may still
-set up MTRRs early before booting the OS. They do this as some platform
-firmware may still have implemented access to MTRRs which would be controlled
-and handled by the platform firmware directly. An example of platform use of
-MTRRs is through the use of SMI handlers, one case could be for fan control,
-the platform code would need uncachable access to some of its fan control
-registers. Such platform access does not need any Operating System MTRR code in
-place other than mtrr_type_lookup() to ensure any OS specific mapping requests
-are aligned with platform MTRR setup. If MTRRs are only set up by the platform
-firmware code though and the OS does not make any specific MTRR mapping
-requests mtrr_type_lookup() should always return MTRR_TYPE_INVALID.
+MTRR use is replaced on modern x86 hardware with PAT. Over time the only type
+of effective MTRR that is expected to be supported will be for write-combining.
+As MTRR use is phased out device drivers should use arch_phys_wc_add() to make
+MTRR effective on non-PAT systems while a no-op on PAT enabled systems.
For details refer to Documentation/x86/pat.txt.
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index f891b47..e7ed0d8 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -448,6 +448,7 @@ int mtrr_add(unsigned long base, unsigned long size, unsigned int type,
return mtrr_add_page(base >> PAGE_SHIFT, size >> PAGE_SHIFT, type,
increment);
}
+EXPORT_SYMBOL(mtrr_add);
/**
* mtrr_del_page - delete a memory type region
@@ -536,6 +537,7 @@ int mtrr_del(int reg, unsigned long base, unsigned long size)
return -EINVAL;
return mtrr_del_page(reg, base >> PAGE_SHIFT, size >> PAGE_SHIFT);
}
+EXPORT_SYMBOL(mtrr_del);
/**
* arch_phys_wc_add - add a WC MTRR and handle errors if PAT is unavailable
--
2.3.10
@@ -0,0 +1,37 @@
From 56e74338a535cbcc2f2da08b1ea1a92920194364 Mon Sep 17 00:00:00 2001
From: Alexandra Yates <alexandra.yates@linux.intel.com>
Date: Tue, 3 Nov 2015 14:14:18 -0800
Subject: [PATCH] ahci: add new Intel device IDs
Adding Intel codename Lewisburg platform device IDs for SATA.
Signed-off-by: Alexandra Yates <alexandra.yates@linux.intel.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
---
drivers/ata/ahci.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index ff343c4..ff02bb4 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -314,6 +314,16 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, 0x1f37), board_ahci_avn }, /* Avoton RAID */
{ PCI_VDEVICE(INTEL, 0x1f3e), board_ahci_avn }, /* Avoton RAID */
{ PCI_VDEVICE(INTEL, 0x1f3f), board_ahci_avn }, /* Avoton RAID */
+ { PCI_VDEVICE(INTEL, 0xa182), board_ahci }, /* Lewisburg AHCI*/
+ { PCI_VDEVICE(INTEL, 0xa202), board_ahci }, /* Lewisburg AHCI*/
+ { PCI_VDEVICE(INTEL, 0xa184), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa204), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa186), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa206), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0x2822), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa18e), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa20e), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Wellsburg RAID */
{ PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Wellsburg RAID */
{ PCI_VDEVICE(INTEL, 0x8d02), board_ahci }, /* Wellsburg AHCI */
--
2.3.10
@@ -0,0 +1,29 @@
From 57e5c6d95b2cde884634586d833b02f54ba1c79d Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Tue, 21 Apr 2015 09:42:21 -0700
Subject: [PATCH 1/3] dt-bindings: Add root properties for Raspberry Pi 2
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Rob Herring <robh@kernel.org>
---
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
index c78576b..11d3056 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
@@ -26,6 +26,10 @@ Raspberry Pi Model B+
Required root node properties:
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
+Raspberry Pi 2 Model B
+Required root node properties:
+compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
+
Raspberry Pi Compute Module
Required root node properties:
compatible = "raspberrypi,compute-module", "brcm,bcm2835";
--
2.3.10
@@ -0,0 +1,34 @@
From c1be3c1fc6178ca48750b4e66f1acb7c22b64997 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Wed, 16 Dec 2015 15:55:14 -0800
Subject: [PATCH 2/3] ARM: bcm2835: Add a compat string for bcm2836 machine
probe
Supporting the 2836 requires using the new interrupt controller, which
we have support for.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
arch/arm/mach-bcm/board_bcm2835.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c
index 0f7b9ea..834d676 100644
--- a/arch/arm/mach-bcm/board_bcm2835.c
+++ b/arch/arm/mach-bcm/board_bcm2835.c
@@ -36,7 +36,12 @@ static void __init bcm2835_init(void)
}
static const char * const bcm2835_compat[] = {
+#ifdef CONFIG_ARCH_MULTI_V6
"brcm,bcm2835",
+#endif
+#ifdef CONFIG_ARCH_MULTI_V7
+ "brcm,bcm2836",
+#endif
NULL
};
--
2.3.10
@@ -0,0 +1,79 @@
From 5234c34e4cd7695647ccc1cabb50c3e7720dd3fb Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Tue, 24 Feb 2015 15:07:55 +0000
Subject: [PATCH 3/3] ARM: bcm2835: Add Kconfig support for bcm2836
This should be a complete port of bcm2835 functionality to bcm2836
(Raspberry Pi 2).
Signed-off-by: Eric Anholt <eric@anholt.net>
---
arch/arm/Kconfig.debug | 10 ++++++++--
arch/arm/mach-bcm/Kconfig | 9 +++++----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 259c0ca..957b876 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -143,7 +143,12 @@ choice
config DEBUG_BCM2835
bool "Kernel low-level debugging on BCM2835 PL011 UART"
- depends on ARCH_BCM2835
+ depends on ARCH_BCM2835 && ARCH_MULTI_V6
+ select DEBUG_UART_PL01X
+
+ config DEBUG_BCM2836
+ bool "Kernel low-level debugging on BCM2836 PL011 UART"
+ depends on ARCH_BCM2835 && ARCH_MULTI_V7
select DEBUG_UART_PL01X
config DEBUG_BCM_5301X
@@ -1402,6 +1407,7 @@ config DEBUG_UART_PHYS
default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
default 0x20201000 if DEBUG_BCM2835
+ default 0x3f201000 if DEBUG_BCM2836
default 0x3e000000 if DEBUG_BCM_KONA_UART
default 0x4000e400 if DEBUG_LL_UART_EFM32
default 0x40081000 if DEBUG_LPC18XX_UART0
@@ -1485,7 +1491,7 @@ config DEBUG_UART_VIRT
default 0xf0000be0 if ARCH_EBSA110
default 0xf0010000 if DEBUG_ASM9260_UART
default 0xf01fb000 if DEBUG_NOMADIK_UART
- default 0xf0201000 if DEBUG_BCM2835
+ default 0xf0201000 if DEBUG_BCM2835 || DEBUG_BCM2836
default 0xf1000300 if DEBUG_BCM_5301X
default 0xf1002000 if DEBUG_MT8127_UART0
default 0xf1006000 if DEBUG_MT6589_UART0
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 8c53c55..3b2acf4 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -122,17 +122,18 @@ config ARCH_BCM_MOBILE_SMP
comment "Other Architectures"
config ARCH_BCM2835
- bool "Broadcom BCM2835 family" if ARCH_MULTI_V6
+ bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 || ARCH_MULTI_V7
select ARCH_REQUIRE_GPIOLIB
select ARM_AMBA
- select ARM_ERRATA_411920
+ select ARM_ERRATA_411920 if ARCH_MULTI_V6
select ARM_TIMER_SP804
+ select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
select CLKSRC_OF
select PINCTRL
select PINCTRL_BCM2835
help
- This enables support for the Broadcom BCM2835 SoC. This SoC is
- used in the Raspberry Pi and Roku 2 devices.
+ This enables support for the Broadcom BCM2835 and BCM2836 SoCs.
+ This SoC is used in the Raspberry Pi and Roku 2 devices.
config ARCH_BCM_63XX
bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7
--
2.3.10
@@ -0,0 +1,36 @@
From 60d56333e869be6ad6926cdba3ba974512b2183b Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Tue, 1 Dec 2015 16:49:12 -0800
Subject: [PATCH 1/3] ARM: bcm2835: Define two new packets from the latest
firmware.
These packets give us direct access to the firmware's power management
code, as opposed to GET/SET_POWER_STATE packets that only had a couple
of domains implemented.
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
---
include/soc/bcm2835/raspberrypi-firmware.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
index c07d74a..3fb3571 100644
--- a/include/soc/bcm2835/raspberrypi-firmware.h
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
@@ -72,10 +72,12 @@ enum rpi_firmware_property_tag {
RPI_FIRMWARE_SET_ENABLE_QPU = 0x00030012,
RPI_FIRMWARE_GET_DISPMANX_RESOURCE_MEM_HANDLE = 0x00030014,
RPI_FIRMWARE_GET_EDID_BLOCK = 0x00030020,
+ RPI_FIRMWARE_GET_DOMAIN_STATE = 0x00030030,
RPI_FIRMWARE_SET_CLOCK_STATE = 0x00038001,
RPI_FIRMWARE_SET_CLOCK_RATE = 0x00038002,
RPI_FIRMWARE_SET_VOLTAGE = 0x00038003,
RPI_FIRMWARE_SET_TURBO = 0x00038009,
+ RPI_FIRMWARE_SET_DOMAIN_STATE = 0x00038030,
/* Dispmanx TAGS */
RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,
--
2.3.10
@@ -0,0 +1,74 @@
From 4c8b338f9ae38dee9c77bda023babc7f7543f52c Mon Sep 17 00:00:00 2001
From: Alexander Aring <alex.aring@gmail.com>
Date: Wed, 16 Dec 2015 16:26:48 -0800
Subject: [PATCH 2/3] dt-bindings: add rpi power domain driver bindings
This patch adds devicetree tree bindings for the Raspberry Pi power
domain driver.
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
---
.../bindings/soc/bcm/raspberrypi,bcm2835-power.txt | 47 ++++++++++++++++++++++
1 file changed, 47 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/bcm/raspberrypi,bcm2835-power.txt
diff --git a/Documentation/devicetree/bindings/soc/bcm/raspberrypi,bcm2835-power.txt b/Documentation/devicetree/bindings/soc/bcm/raspberrypi,bcm2835-power.txt
new file mode 100644
index 0000000..30942cf
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/bcm/raspberrypi,bcm2835-power.txt
@@ -0,0 +1,47 @@
+Raspberry Pi power domain driver
+
+Required properties:
+
+- compatible: Should be "raspberrypi,bcm2835-power".
+- firmware: Reference to the RPi firmware device node.
+- #power-domain-cells: Should be <1>, we providing multiple power domains.
+
+The valid defines for power domain are:
+
+ RPI_POWER_DOMAIN_I2C0
+ RPI_POWER_DOMAIN_I2C1
+ RPI_POWER_DOMAIN_I2C2
+ RPI_POWER_DOMAIN_VIDEO_SCALER
+ RPI_POWER_DOMAIN_VPU1
+ RPI_POWER_DOMAIN_HDMI
+ RPI_POWER_DOMAIN_USB
+ RPI_POWER_DOMAIN_VEC
+ RPI_POWER_DOMAIN_JPEG
+ RPI_POWER_DOMAIN_H264
+ RPI_POWER_DOMAIN_V3D
+ RPI_POWER_DOMAIN_ISP
+ RPI_POWER_DOMAIN_UNICAM0
+ RPI_POWER_DOMAIN_UNICAM1
+ RPI_POWER_DOMAIN_CCP2RX
+ RPI_POWER_DOMAIN_CSI2
+ RPI_POWER_DOMAIN_CPI
+ RPI_POWER_DOMAIN_DSI0
+ RPI_POWER_DOMAIN_DSI1
+ RPI_POWER_DOMAIN_TRANSPOSER
+ RPI_POWER_DOMAIN_CCP2TX
+ RPI_POWER_DOMAIN_CDP
+ RPI_POWER_DOMAIN_ARM
+
+Example:
+
+power: power {
+ compatible = "raspberrypi,bcm2835-power";
+ firmware = <&firmware>;
+ #power-domain-cells = <1>;
+};
+
+Example for using power domain:
+
+&usb {
+ power-domains = <&power RPI_POWER_DOMAIN_USB>;
+};
--
2.3.10
@@ -0,0 +1,379 @@
From a09cd356586d33f64cbe64ee4f5c1a7c4a6abee5 Mon Sep 17 00:00:00 2001
From: Alexander Aring <alex.aring@gmail.com>
Date: Wed, 16 Dec 2015 16:26:47 -0800
Subject: [PATCH 3/3] ARM: bcm2835: add rpi power domain driver
This patch adds support for several power domains on Raspberry Pi,
including USB (so it can be enabled even if the bootloader didn't do
it), and graphics.
This patch is the combined work of Eric Anholt (who wrote USB support
inside of the Raspberry Pi firmware driver, and wrote the non-USB
domain support) and Alexander Aring (who separated the original USB
work out from the firmware driver).
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
---
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/bcm/Kconfig | 9 +
drivers/soc/bcm/Makefile | 1 +
drivers/soc/bcm/raspberrypi-power.c | 247 ++++++++++++++++++++++++++
include/dt-bindings/power/raspberrypi-power.h | 41 +++++
6 files changed, 300 insertions(+)
create mode 100644 drivers/soc/bcm/Kconfig
create mode 100644 drivers/soc/bcm/Makefile
create mode 100644 drivers/soc/bcm/raspberrypi-power.c
create mode 100644 include/dt-bindings/power/raspberrypi-power.h
diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
index 4e853ed..8441426 100644
--- a/drivers/soc/Kconfig
+++ b/drivers/soc/Kconfig
@@ -1,5 +1,6 @@
menu "SOC (System On Chip) specific Drivers"
+source "drivers/soc/bcm/Kconfig"
source "drivers/soc/brcmstb/Kconfig"
source "drivers/soc/mediatek/Kconfig"
source "drivers/soc/qcom/Kconfig"
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index f2ba2e9..f3f955c 100644
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@ -2,6 +2,7 @@
# Makefile for the Linux Kernel SOC specific device drivers.
#
+obj-y += bcm/
obj-$(CONFIG_SOC_BRCMSTB) += brcmstb/
obj-$(CONFIG_MACH_DOVE) += dove/
obj-$(CONFIG_ARCH_MEDIATEK) += mediatek/
diff --git a/drivers/soc/bcm/Kconfig b/drivers/soc/bcm/Kconfig
new file mode 100644
index 0000000..5ba1827
--- /dev/null
+++ b/drivers/soc/bcm/Kconfig
@@ -0,0 +1,9 @@
+config RASPBERRYPI_POWER
+ bool "Raspberry Pi power domain driver"
+ depends on ARCH_BCM2835 || COMPILE_TEST
+ depends on RASPBERRYPI_FIRMWARE
+ select PM_GENERIC_DOMAINS if PM
+ select PM_GENERIC_DOMAINS_OF if PM
+ help
+ This enables support for the RPi power domains which can be enabled
+ or disabled via the RPi firmware.
diff --git a/drivers/soc/bcm/Makefile b/drivers/soc/bcm/Makefile
new file mode 100644
index 0000000..63aa3eb
--- /dev/null
+++ b/drivers/soc/bcm/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_RASPBERRYPI_POWER) += raspberrypi-power.o
diff --git a/drivers/soc/bcm/raspberrypi-power.c b/drivers/soc/bcm/raspberrypi-power.c
new file mode 100644
index 0000000..fe96a8b
--- /dev/null
+++ b/drivers/soc/bcm/raspberrypi-power.c
@@ -0,0 +1,247 @@
+/* (C) 2015 Pengutronix, Alexander Aring <aar@pengutronix.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Authors:
+ * Alexander Aring <aar@pengutronix.de>
+ * Eric Anholt <eric@anholt.net>
+ */
+
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/pm_domain.h>
+#include <dt-bindings/power/raspberrypi-power.h>
+#include <soc/bcm2835/raspberrypi-firmware.h>
+
+/*
+ * Firmware indices for the old power domains interface. Only a few
+ * of them were actually implemented.
+ */
+#define RPI_OLD_POWER_DOMAIN_USB 3
+#define RPI_OLD_POWER_DOMAIN_V3D 10
+
+struct rpi_power_domain {
+ u32 domain;
+ bool enabled;
+ bool old_interface;
+ struct generic_pm_domain base;
+ struct rpi_firmware *fw;
+};
+
+struct rpi_power_domains {
+ bool has_new_interface;
+ struct genpd_onecell_data xlate;
+ struct rpi_firmware *fw;
+ struct rpi_power_domain domains[RPI_POWER_DOMAIN_COUNT];
+};
+
+/*
+ * Packet definition used by RPI_FIRMWARE_SET_POWER_STATE and
+ * RPI_FIRMWARE_SET_DOMAIN_STATE
+ */
+struct rpi_power_domain_packet {
+ u32 domain;
+ u32 on;
+} __packet;
+
+/*
+ * Asks the firmware to enable or disable power on a specific power
+ * domain.
+ */
+static int rpi_firmware_set_power(struct rpi_power_domain *rpi_domain, bool on)
+{
+ struct rpi_power_domain_packet packet;
+
+ packet.domain = rpi_domain->domain;
+ packet.on = on;
+ return rpi_firmware_property(rpi_domain->fw,
+ rpi_domain->old_interface ?
+ RPI_FIRMWARE_SET_POWER_STATE :
+ RPI_FIRMWARE_SET_DOMAIN_STATE,
+ &packet, sizeof(packet));
+}
+
+static int rpi_domain_off(struct generic_pm_domain *domain)
+{
+ struct rpi_power_domain *rpi_domain =
+ container_of(domain, struct rpi_power_domain, base);
+
+ return rpi_firmware_set_power(rpi_domain, false);
+}
+
+static int rpi_domain_on(struct generic_pm_domain *domain)
+{
+ struct rpi_power_domain *rpi_domain =
+ container_of(domain, struct rpi_power_domain, base);
+
+ return rpi_firmware_set_power(rpi_domain, true);
+}
+
+static void rpi_common_init_power_domain(struct rpi_power_domains *rpi_domains,
+ int xlate_index, const char *name)
+{
+ struct rpi_power_domain *dom = &rpi_domains->domains[xlate_index];
+
+ dom->fw = rpi_domains->fw;
+
+ dom->base.name = name;
+ dom->base.power_on = rpi_domain_on;
+ dom->base.power_off = rpi_domain_off;
+
+ /*
+ * Treat all power domains as off at boot.
+ *
+ * The firmware itself may be keeping some domains on, but
+ * from Linux's perspective all we control is the refcounts
+ * that we give to the firmware, and we can't ask the firmware
+ * to turn off something that we haven't ourselves turned on.
+ */
+ pm_genpd_init(&dom->base, NULL, true);
+
+ rpi_domains->xlate.domains[xlate_index] = &dom->base;
+}
+
+static void rpi_init_power_domain(struct rpi_power_domains *rpi_domains,
+ int xlate_index, const char *name)
+{
+ struct rpi_power_domain *dom = &rpi_domains->domains[xlate_index];
+
+ if (!rpi_domains->has_new_interface)
+ return;
+
+ /* The DT binding index is the firmware's domain index minus one. */
+ dom->domain = xlate_index + 1;
+
+ rpi_common_init_power_domain(rpi_domains, xlate_index, name);
+}
+
+static void rpi_init_old_power_domain(struct rpi_power_domains *rpi_domains,
+ int xlate_index, int domain,
+ const char *name)
+{
+ struct rpi_power_domain *dom = &rpi_domains->domains[xlate_index];
+
+ dom->old_interface = true;
+ dom->domain = domain;
+
+ rpi_common_init_power_domain(rpi_domains, xlate_index, name);
+}
+
+/*
+ * Detects whether the firmware supports the new power domains interface.
+ *
+ * The firmware doesn't actually return an error on an unknown tag,
+ * and just skips over it, so we do the detection by putting an
+ * unexpected value in the return field and checking if it was
+ * unchanged.
+ */
+static bool
+rpi_has_new_domain_support(struct rpi_power_domains *rpi_domains)
+{
+ struct rpi_power_domain_packet packet;
+ int ret;
+
+ packet.domain = RPI_POWER_DOMAIN_ARM;
+ packet.on = ~0;
+
+ ret = rpi_firmware_property(rpi_domains->fw,
+ RPI_FIRMWARE_GET_DOMAIN_STATE,
+ &packet, sizeof(packet));
+
+ return ret == 0 && packet.on != ~0;
+}
+
+static int rpi_power_probe(struct platform_device *pdev)
+{
+ struct device_node *fw_np;
+ struct device *dev = &pdev->dev;
+ struct rpi_power_domains *rpi_domains;
+
+ rpi_domains = devm_kzalloc(dev, sizeof(*rpi_domains), GFP_KERNEL);
+ if (!rpi_domains)
+ return -ENOMEM;
+
+ rpi_domains->xlate.domains =
+ devm_kzalloc(dev, sizeof(*rpi_domains->xlate.domains) *
+ RPI_POWER_DOMAIN_COUNT, GFP_KERNEL);
+ if (!rpi_domains->xlate.domains)
+ return -ENOMEM;
+
+ rpi_domains->xlate.num_domains = RPI_POWER_DOMAIN_COUNT;
+
+ fw_np = of_parse_phandle(pdev->dev.of_node, "firmware", 0);
+ if (!fw_np) {
+ dev_err(&pdev->dev, "no firmware node\n");
+ return -ENODEV;
+ }
+
+ rpi_domains->fw = rpi_firmware_get(fw_np);
+ of_node_put(fw_np);
+ if (!rpi_domains->fw)
+ return -EPROBE_DEFER;
+
+ rpi_domains->has_new_interface =
+ rpi_has_new_domain_support(rpi_domains);
+
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_I2C0, "I2C0");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_I2C1, "I2C1");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_I2C2, "I2C2");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_VIDEO_SCALER,
+ "VIDEO_SCALER");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_VPU1, "VPU1");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_HDMI, "HDMI");
+
+ /*
+ * Use the old firmware interface for USB power, so that we
+ * can turn it on even if the firmware hasn't been updated.
+ */
+ rpi_init_old_power_domain(rpi_domains, RPI_POWER_DOMAIN_USB,
+ RPI_OLD_POWER_DOMAIN_USB, "USB");
+
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_VEC, "VEC");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_JPEG, "JPEG");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_H264, "H264");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_V3D, "V3D");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_ISP, "ISP");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_UNICAM0, "UNICAM0");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_UNICAM1, "UNICAM1");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_CCP2RX, "CCP2RX");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_CSI2, "CSI2");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_CPI, "CPI");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_DSI0, "DSI0");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_DSI1, "DSI1");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_TRANSPOSER,
+ "TRANSPOSER");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_CCP2TX, "CCP2TX");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_CDP, "CDP");
+ rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_ARM, "ARM");
+
+ of_genpd_add_provider_onecell(dev->of_node, &rpi_domains->xlate);
+
+ platform_set_drvdata(pdev, rpi_domains);
+
+ return 0;
+}
+
+static const struct of_device_id rpi_power_of_match[] = {
+ { .compatible = "raspberrypi,bcm2835-power", },
+ {},
+};
+MODULE_DEVICE_TABLE(of, rpi_power_of_match);
+
+static struct platform_driver rpi_power_driver = {
+ .driver = {
+ .name = "raspberrypi-power",
+ .of_match_table = rpi_power_of_match,
+ },
+ .probe = rpi_power_probe,
+};
+builtin_platform_driver(rpi_power_driver);
+
+MODULE_AUTHOR("Alexander Aring <aar@pengutronix.de>");
+MODULE_AUTHOR("Eric Anholt <eric@anholt.net>");
+MODULE_DESCRIPTION("Raspberry Pi power domain driver");
+MODULE_LICENSE("GPL v2");
diff --git a/include/dt-bindings/power/raspberrypi-power.h b/include/dt-bindings/power/raspberrypi-power.h
new file mode 100644
index 0000000..b3ff8e0
--- /dev/null
+++ b/include/dt-bindings/power/raspberrypi-power.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright © 2015 Broadcom
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef _DT_BINDINGS_ARM_BCM2835_RPI_POWER_H
+#define _DT_BINDINGS_ARM_BCM2835_RPI_POWER_H
+
+/* These power domain indices are the firmware interface's indices
+ * minus one.
+ */
+#define RPI_POWER_DOMAIN_I2C0 0
+#define RPI_POWER_DOMAIN_I2C1 1
+#define RPI_POWER_DOMAIN_I2C2 2
+#define RPI_POWER_DOMAIN_VIDEO_SCALER 3
+#define RPI_POWER_DOMAIN_VPU1 4
+#define RPI_POWER_DOMAIN_HDMI 5
+#define RPI_POWER_DOMAIN_USB 6
+#define RPI_POWER_DOMAIN_VEC 7
+#define RPI_POWER_DOMAIN_JPEG 8
+#define RPI_POWER_DOMAIN_H264 9
+#define RPI_POWER_DOMAIN_V3D 10
+#define RPI_POWER_DOMAIN_ISP 11
+#define RPI_POWER_DOMAIN_UNICAM0 12
+#define RPI_POWER_DOMAIN_UNICAM1 13
+#define RPI_POWER_DOMAIN_CCP2RX 14
+#define RPI_POWER_DOMAIN_CSI2 15
+#define RPI_POWER_DOMAIN_CPI 16
+#define RPI_POWER_DOMAIN_DSI0 17
+#define RPI_POWER_DOMAIN_DSI1 18
+#define RPI_POWER_DOMAIN_TRANSPOSER 19
+#define RPI_POWER_DOMAIN_CCP2TX 20
+#define RPI_POWER_DOMAIN_CDP 21
+#define RPI_POWER_DOMAIN_ARM 22
+
+#define RPI_POWER_DOMAIN_COUNT 23
+
+#endif /* _DT_BINDINGS_ARM_BCM2835_RPI_POWER_H */
--
2.3.10
@@ -0,0 +1,443 @@
From 482626063d446eac1809e025a79ad0a7d45bc22d Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Wed, 16 Dec 2015 13:24:40 -0800
Subject: [PATCH 1/4] ARM: bcm2835: Split the DT for peripherals from the DT
for the CPU
The set of peripherals remained constant across bcm2835 (Raspberry Pi
1) and bcm2836 (Raspberry Pi 2), but the CPU was swapped out. Split
the files so that we can include just peripheral setup in 2836.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
arch/arm/boot/dts/bcm2835.dtsi | 194 +-------------------------------------
arch/arm/boot/dts/bcm283x.dtsi | 205 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 206 insertions(+), 193 deletions(-)
create mode 100644 arch/arm/boot/dts/bcm283x.dtsi
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi
index aef64de..b83b326 100644
--- a/arch/arm/boot/dts/bcm2835.dtsi
+++ b/arch/arm/boot/dts/bcm2835.dtsi
@@ -1,206 +1,14 @@
-#include <dt-bindings/pinctrl/bcm2835.h>
-#include <dt-bindings/clock/bcm2835.h>
-#include "skeleton.dtsi"
+#include "bcm283x.dtsi"
/ {
compatible = "brcm,bcm2835";
- model = "BCM2835";
- interrupt-parent = <&intc>;
-
- chosen {
- bootargs = "earlyprintk console=ttyAMA0";
- };
soc {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
ranges = <0x7e000000 0x20000000 0x02000000>;
dma-ranges = <0x40000000 0x00000000 0x20000000>;
- timer@7e003000 {
- compatible = "brcm,bcm2835-system-timer";
- reg = <0x7e003000 0x1000>;
- interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
- /* This could be a reference to BCM2835_CLOCK_TIMER,
- * but we don't have the driver using the common clock
- * support yet.
- */
- clock-frequency = <1000000>;
- };
-
- dma: dma@7e007000 {
- compatible = "brcm,bcm2835-dma";
- reg = <0x7e007000 0xf00>;
- interrupts = <1 16>,
- <1 17>,
- <1 18>,
- <1 19>,
- <1 20>,
- <1 21>,
- <1 22>,
- <1 23>,
- <1 24>,
- <1 25>,
- <1 26>,
- <1 27>,
- <1 28>;
-
- #dma-cells = <1>;
- brcm,dma-channel-mask = <0x7f35>;
- };
-
- intc: interrupt-controller@7e00b200 {
- compatible = "brcm,bcm2835-armctrl-ic";
- reg = <0x7e00b200 0x200>;
- interrupt-controller;
- #interrupt-cells = <2>;
- };
-
- watchdog@7e100000 {
- compatible = "brcm,bcm2835-pm-wdt";
- reg = <0x7e100000 0x28>;
- };
-
- clocks: cprman@7e101000 {
- compatible = "brcm,bcm2835-cprman";
- #clock-cells = <1>;
- reg = <0x7e101000 0x2000>;
-
- /* CPRMAN derives everything from the platform's
- * oscillator.
- */
- clocks = <&clk_osc>;
- };
-
- rng@7e104000 {
- compatible = "brcm,bcm2835-rng";
- reg = <0x7e104000 0x10>;
- };
-
- mailbox: mailbox@7e00b800 {
- compatible = "brcm,bcm2835-mbox";
- reg = <0x7e00b880 0x40>;
- interrupts = <0 1>;
- #mbox-cells = <0>;
- };
-
- gpio: gpio@7e200000 {
- compatible = "brcm,bcm2835-gpio";
- reg = <0x7e200000 0xb4>;
- /*
- * The GPIO IP block is designed for 3 banks of GPIOs.
- * Each bank has a GPIO interrupt for itself.
- * There is an overall "any bank" interrupt.
- * In order, these are GIC interrupts 17, 18, 19, 20.
- * Since the BCM2835 only has 2 banks, the 2nd bank
- * interrupt output appears to be mirrored onto the
- * 3rd bank's interrupt signal.
- * So, a bank0 interrupt shows up on 17, 20, and
- * a bank1 interrupt shows up on 18, 19, 20!
- */
- interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
-
- gpio-controller;
- #gpio-cells = <2>;
-
- interrupt-controller;
- #interrupt-cells = <2>;
- };
-
- uart0: uart@7e201000 {
- compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
- reg = <0x7e201000 0x1000>;
- interrupts = <2 25>;
- clocks = <&clocks BCM2835_CLOCK_UART>,
- <&clocks BCM2835_CLOCK_VPU>;
- clock-names = "uartclk", "apb_pclk";
- arm,primecell-periphid = <0x00241011>;
- };
-
- i2s: i2s@7e203000 {
- compatible = "brcm,bcm2835-i2s";
- reg = <0x7e203000 0x20>,
- <0x7e101098 0x02>;
-
- dmas = <&dma 2>,
- <&dma 3>;
- dma-names = "tx", "rx";
- status = "disabled";
- };
-
- spi: spi@7e204000 {
- compatible = "brcm,bcm2835-spi";
- reg = <0x7e204000 0x1000>;
- interrupts = <2 22>;
- clocks = <&clocks BCM2835_CLOCK_VPU>;
- #address-cells = <1>;
- #size-cells = <0>;
- status = "disabled";
- };
-
- i2c0: i2c@7e205000 {
- compatible = "brcm,bcm2835-i2c";
- reg = <0x7e205000 0x1000>;
- interrupts = <2 21>;
- clocks = <&clocks BCM2835_CLOCK_VPU>;
- #address-cells = <1>;
- #size-cells = <0>;
- status = "disabled";
- };
-
- sdhci: sdhci@7e300000 {
- compatible = "brcm,bcm2835-sdhci";
- reg = <0x7e300000 0x100>;
- interrupts = <2 30>;
- clocks = <&clocks BCM2835_CLOCK_EMMC>;
- status = "disabled";
- };
-
- i2c1: i2c@7e804000 {
- compatible = "brcm,bcm2835-i2c";
- reg = <0x7e804000 0x1000>;
- interrupts = <2 21>;
- clocks = <&clocks BCM2835_CLOCK_VPU>;
- #address-cells = <1>;
- #size-cells = <0>;
- status = "disabled";
- };
-
- i2c2: i2c@7e805000 {
- compatible = "brcm,bcm2835-i2c";
- reg = <0x7e805000 0x1000>;
- interrupts = <2 21>;
- clocks = <&clocks BCM2835_CLOCK_VPU>;
- #address-cells = <1>;
- #size-cells = <0>;
- status = "disabled";
- };
-
- usb@7e980000 {
- compatible = "brcm,bcm2835-usb";
- reg = <0x7e980000 0x10000>;
- interrupts = <1 9>;
- };
-
arm-pmu {
compatible = "arm,arm1176-pmu";
};
};
-
- clocks {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <0>;
-
- /* The oscillator is the root of the clock tree. */
- clk_osc: clock@3 {
- compatible = "fixed-clock";
- reg = <3>;
- #clock-cells = <0>;
- clock-output-names = "osc";
- clock-frequency = <19200000>;
- };
-
- };
};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
new file mode 100644
index 0000000..8a7e727
--- /dev/null
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -0,0 +1,205 @@
+#include <dt-bindings/pinctrl/bcm2835.h>
+#include <dt-bindings/clock/bcm2835.h>
+#include "skeleton.dtsi"
+
+/* This include file covers the common peripherals and configuration between
+ * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
+ * bcm2835.dtsi and bcm2836.dtsi.
+ */
+
+/ {
+ compatible = "brcm,bcm2835";
+ model = "BCM2835";
+ interrupt-parent = <&intc>;
+
+ chosen {
+ bootargs = "earlyprintk console=ttyAMA0";
+ };
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ timer@7e003000 {
+ compatible = "brcm,bcm2835-system-timer";
+ reg = <0x7e003000 0x1000>;
+ interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
+ /* This could be a reference to BCM2835_CLOCK_TIMER,
+ * but we don't have the driver using the common clock
+ * support yet.
+ */
+ clock-frequency = <1000000>;
+ };
+
+ dma: dma@7e007000 {
+ compatible = "brcm,bcm2835-dma";
+ reg = <0x7e007000 0xf00>;
+ interrupts = <1 16>,
+ <1 17>,
+ <1 18>,
+ <1 19>,
+ <1 20>,
+ <1 21>,
+ <1 22>,
+ <1 23>,
+ <1 24>,
+ <1 25>,
+ <1 26>,
+ <1 27>,
+ <1 28>;
+
+ #dma-cells = <1>;
+ brcm,dma-channel-mask = <0x7f35>;
+ };
+
+ intc: interrupt-controller@7e00b200 {
+ compatible = "brcm,bcm2835-armctrl-ic";
+ reg = <0x7e00b200 0x200>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ watchdog@7e100000 {
+ compatible = "brcm,bcm2835-pm-wdt";
+ reg = <0x7e100000 0x28>;
+ };
+
+ clocks: cprman@7e101000 {
+ compatible = "brcm,bcm2835-cprman";
+ #clock-cells = <1>;
+ reg = <0x7e101000 0x2000>;
+
+ /* CPRMAN derives everything from the platform's
+ * oscillator.
+ */
+ clocks = <&clk_osc>;
+ };
+
+ rng@7e104000 {
+ compatible = "brcm,bcm2835-rng";
+ reg = <0x7e104000 0x10>;
+ };
+
+ mailbox: mailbox@7e00b800 {
+ compatible = "brcm,bcm2835-mbox";
+ reg = <0x7e00b880 0x40>;
+ interrupts = <0 1>;
+ #mbox-cells = <0>;
+ };
+
+ gpio: gpio@7e200000 {
+ compatible = "brcm,bcm2835-gpio";
+ reg = <0x7e200000 0xb4>;
+ /*
+ * The GPIO IP block is designed for 3 banks of GPIOs.
+ * Each bank has a GPIO interrupt for itself.
+ * There is an overall "any bank" interrupt.
+ * In order, these are GIC interrupts 17, 18, 19, 20.
+ * Since the BCM2835 only has 2 banks, the 2nd bank
+ * interrupt output appears to be mirrored onto the
+ * 3rd bank's interrupt signal.
+ * So, a bank0 interrupt shows up on 17, 20, and
+ * a bank1 interrupt shows up on 18, 19, 20!
+ */
+ interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ uart0: uart@7e201000 {
+ compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
+ reg = <0x7e201000 0x1000>;
+ interrupts = <2 25>;
+ clocks = <&clocks BCM2835_CLOCK_UART>,
+ <&clocks BCM2835_CLOCK_VPU>;
+ clock-names = "uartclk", "apb_pclk";
+ arm,primecell-periphid = <0x00241011>;
+ };
+
+ i2s: i2s@7e203000 {
+ compatible = "brcm,bcm2835-i2s";
+ reg = <0x7e203000 0x20>,
+ <0x7e101098 0x02>;
+
+ dmas = <&dma 2>,
+ <&dma 3>;
+ dma-names = "tx", "rx";
+ status = "disabled";
+ };
+
+ spi: spi@7e204000 {
+ compatible = "brcm,bcm2835-spi";
+ reg = <0x7e204000 0x1000>;
+ interrupts = <2 22>;
+ clocks = <&clocks BCM2835_CLOCK_VPU>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ i2c0: i2c@7e205000 {
+ compatible = "brcm,bcm2835-i2c";
+ reg = <0x7e205000 0x1000>;
+ interrupts = <2 21>;
+ clocks = <&clocks BCM2835_CLOCK_VPU>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ sdhci: sdhci@7e300000 {
+ compatible = "brcm,bcm2835-sdhci";
+ reg = <0x7e300000 0x100>;
+ interrupts = <2 30>;
+ clocks = <&clocks BCM2835_CLOCK_EMMC>;
+ status = "disabled";
+ };
+
+ i2c1: i2c@7e804000 {
+ compatible = "brcm,bcm2835-i2c";
+ reg = <0x7e804000 0x1000>;
+ interrupts = <2 21>;
+ clocks = <&clocks BCM2835_CLOCK_VPU>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ i2c2: i2c@7e805000 {
+ compatible = "brcm,bcm2835-i2c";
+ reg = <0x7e805000 0x1000>;
+ interrupts = <2 21>;
+ clocks = <&clocks BCM2835_CLOCK_VPU>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ usb@7e980000 {
+ compatible = "brcm,bcm2835-usb";
+ reg = <0x7e980000 0x10000>;
+ interrupts = <1 9>;
+ };
+ };
+
+ clocks {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* The oscillator is the root of the clock tree. */
+ clk_osc: clock@3 {
+ compatible = "fixed-clock";
+ reg = <3>;
+ #clock-cells = <0>;
+ clock-output-names = "osc";
+ clock-frequency = <19200000>;
+ };
+
+ };
+};
--
2.3.10
@@ -0,0 +1,71 @@
From bafa68c08c33ddde3bc10d2d7e5d3b77b4a6c8ed Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Wed, 16 Dec 2015 15:55:12 -0800
Subject: [PATCH 2/4] ARM: bcm2835: Move the CPU/peripheral include out of
common RPi DT.
For Raspberry Pi 2, we want to use the same general pin assignment
bits, but need to use bcm2836.dtsi for the CPU instead.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-b.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 --
5 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
index b2bff43..228614f 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
@@ -1,4 +1,5 @@
/dts-v1/;
+#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
index 668442b..ef54050 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
@@ -1,4 +1,5 @@
/dts-v1/;
+#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
index eab8b591..86f1f2f 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
@@ -1,4 +1,5 @@
/dts-v1/;
+#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index ff6b2d1..4859e9d 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -1,4 +1,5 @@
/dts-v1/;
+#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 3572f03..3afb9fe 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -1,5 +1,3 @@
-#include "bcm2835.dtsi"
-
/ {
memory {
reg = <0 0x10000000>;
--
2.3.10
@@ -0,0 +1,160 @@
From c33319cd945001741d1b381655c8b7310d756163 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Thu, 16 Apr 2015 15:26:45 -0700
Subject: [PATCH 3/4] ARM: bcm2835: Add devicetree for bcm2836 and Raspberry Pi
2 B
The Pi 2 B ends up like a Pi 1 B+, with the same peripherals and
pinout, but the CPU and memory layout changed to use the 2836.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
arch/arm/boot/dts/Makefile | 3 +-
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 35 ++++++++++++++++
arch/arm/boot/dts/bcm2836.dtsi | 78 +++++++++++++++++++++++++++++++++++
3 files changed, 115 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/bcm2836-rpi-2-b.dts
create mode 100644 arch/arm/boot/dts/bcm2836.dtsi
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 30bbc37..54e8f6b 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -60,7 +60,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2835-rpi-b.dtb \
bcm2835-rpi-b-rev2.dtb \
bcm2835-rpi-b-plus.dtb \
- bcm2835-rpi-a-plus.dtb
+ bcm2835-rpi-a-plus.dtb \
+ bcm2836-rpi-2-b.dtb
dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4708-asus-rt-ac56u.dtb \
bcm4708-asus-rt-ac68u.dtb \
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
new file mode 100644
index 0000000..ff94666
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+#include "bcm2836.dtsi"
+#include "bcm2835-rpi.dtsi"
+
+/ {
+ compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
+ model = "Raspberry Pi 2 Model B";
+
+ memory {
+ reg = <0 0x40000000>;
+ };
+
+ leds {
+ act {
+ gpios = <&gpio 47 0>;
+ };
+
+ pwr {
+ label = "PWR";
+ gpios = <&gpio 35 0>;
+ default-state = "keep";
+ linux,default-trigger = "default-on";
+ };
+ };
+};
+
+&gpio {
+ pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+
+ /* I2S interface */
+ i2s_alt0: i2s_alt0 {
+ brcm,pins = <18 19 20 21>;
+ brcm,function = <BCM2835_FSEL_ALT0>;
+ };
+};
diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi
new file mode 100644
index 0000000..9d0651d
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2836.dtsi
@@ -0,0 +1,78 @@
+#include "bcm283x.dtsi"
+
+/ {
+ compatible = "brcm,bcm2836";
+
+ soc {
+ ranges = <0x7e000000 0x3f000000 0x1000000>,
+ <0x40000000 0x40000000 0x00001000>;
+ dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
+
+ local_intc: local_intc {
+ compatible = "brcm,bcm2836-l1-intc";
+ reg = <0x40000000 0x100>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ interrupt-parent = <&local_intc>;
+ };
+
+ arm-pmu {
+ compatible = "arm,cortex-a7-pmu";
+ interrupt-parent = <&local_intc>;
+ interrupts = <9>;
+ };
+ };
+
+ timer {
+ compatible = "arm,armv7-timer";
+ interrupt-parent = <&local_intc>;
+ interrupts = <0>, // PHYS_SECURE_PPI
+ <1>, // PHYS_NONSECURE_PPI
+ <3>, // VIRT_PPI
+ <2>; // HYP_PPI
+ always-on;
+ };
+
+ cpus: cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ v7_cpu0: cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf00>;
+ clock-frequency = <800000000>;
+ };
+
+ v7_cpu1: cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf01>;
+ clock-frequency = <800000000>;
+ };
+
+ v7_cpu2: cpu@2 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf02>;
+ clock-frequency = <800000000>;
+ };
+
+ v7_cpu3: cpu@3 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf03>;
+ clock-frequency = <800000000>;
+ };
+ };
+};
+
+/* Make the BCM2835-style global interrupt controller be a child of the
+ * CPU-local interrupt controller.
+ */
+&intc {
+ compatible = "brcm,bcm2836-armctrl-ic";
+ reg = <0x7e00b200 0x200>;
+ interrupt-parent = <&local_intc>;
+ interrupts = <8>;
+};
--
2.3.10
@@ -0,0 +1,34 @@
From 53b6084357a44d7c34044504e1bf149d9156934f Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Tue, 15 Dec 2015 15:35:59 -0800
Subject: [PATCH 4/4] ARM: bcm2835: Add the auxiliary clocks to the device
tree.
These will be used for enabling UART1, SPI1, and SPI2.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
arch/arm/boot/dts/bcm283x.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 8a7e727..971e741 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -152,6 +152,13 @@
status = "disabled";
};
+ aux: aux@0x7e215000 {
+ compatible = "brcm,bcm2835-aux";
+ #clock-cells = <1>;
+ reg = <0x7e215000 0x8>;
+ clocks = <&clocks BCM2835_CLOCK_VPU>;
+ };
+
sdhci: sdhci@7e300000 {
compatible = "brcm,bcm2835-sdhci";
reg = <0x7e300000 0x100>;
--
2.3.10
@@ -0,0 +1,132 @@
From 8c821c590f791ade672609c2f59b1ce0af750653 Mon Sep 17 00:00:00 2001
From: Stefan Wahren <stefan.wahren@i2se.com>
Date: Tue, 27 Oct 2015 19:08:58 +0100
Subject: [PATCH 1/2] ARM: bcm2835: enable all bcm2835-relevant in defconfig
Rebuild bcm2835_defconfig using "make bcm2835_defconfig;
make savedefconfig", and enable manually the following features:
* all bcm2835-relevant drivers (MBOX, WDT, DMA, PWM, SND)
* enable regular stackprotector because CONFIG_CC_STACKPROTECTOR
disappear
* enable some new dependencies in order to keep LED heartbeat
( CONFIG_NEW_LEDS, CONFIG_LEDS_CLASS, CONFIG_LEDS_TRIGGERS )
The following options were removed, because they are enabled implicit:
CONFIG_RD_BZIP2, CONFIG_RD_LZMA, CONFIG_RD_XZ, CONFIG_RD_LZO,
CONFIG_USB_DWC2_HOST, CONFIG_EXT4_FS, CONFIG_EXT4_FS_POSIX_ACL
These options became obsolete:
CONFIG_RESOURCE_COUNTERS, CONFIG_SCSI_MULTI_LUN
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
---
arch/arm/configs/bcm2835_defconfig | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig
index 31cb073..0fda844 100644
--- a/arch/arm/configs/bcm2835_defconfig
+++ b/arch/arm/configs/bcm2835_defconfig
@@ -10,7 +10,6 @@ CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_PERF=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
@@ -18,10 +17,6 @@ CONFIG_NAMESPACES=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y
@@ -29,6 +24,7 @@ CONFIG_EMBEDDED=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_JUMP_LABEL=y
+CONFIG_CC_STACKPROTECTOR_REGULAR=y
CONFIG_ARCH_MULTI_V6=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_BCM=y
@@ -38,7 +34,6 @@ CONFIG_AEABI=y
CONFIG_KSM=y
CONFIG_CLEANCACHE=y
CONFIG_SECCOMP=y
-CONFIG_CC_STACKPROTECTOR=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_VFP=y
@@ -57,7 +52,6 @@ CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_STANDALONE is not set
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
-CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_NETDEVICES=y
@@ -77,17 +71,27 @@ CONFIG_SPI=y
CONFIG_SPI_BCM2835=y
CONFIG_GPIO_SYSFS=y
# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_BCM2835_WDT=y
CONFIG_FB=y
CONFIG_FB_SIMPLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_SOC=y
+CONFIG_SND_BCM2835_SOC_I2S=y
CONFIG_USB=y
CONFIG_USB_STORAGE=y
+CONFIG_USB_DWC2=y
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_BCM2835=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
@@ -96,17 +100,19 @@ CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_LEDS_TRIGGER_CAMERA=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
CONFIG_STAGING=y
-CONFIG_USB_DWC2=y
-CONFIG_USB_DWC2_HOST=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_BCM2835=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_FANOTIFY=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
--
2.3.10
@@ -0,0 +1,28 @@
From b63074fccbeb81e46b2553a200de54ff3bfadd10 Mon Sep 17 00:00:00 2001
From: Martin Sperl <kernel@martin.sperl.org>
Date: Fri, 11 Sep 2015 11:22:06 +0000
Subject: [PATCH 2/2] ARM: bcm2835: enable auxiliary spi driver in defconfig
add the auxiliary spi driver to the default config
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
---
arch/arm/configs/bcm2835_defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig
index 0fda844..72def20 100644
--- a/arch/arm/configs/bcm2835_defconfig
+++ b/arch/arm/configs/bcm2835_defconfig
@@ -69,6 +69,7 @@ CONFIG_I2C_CHARDEV=y
CONFIG_I2C_BCM2835=y
CONFIG_SPI=y
CONFIG_SPI_BCM2835=y
+CONFIG_SPI_BCM2835AUX=y
CONFIG_GPIO_SYSFS=y
# CONFIG_HWMON is not set
CONFIG_WATCHDOG=y
--
2.3.10
@@ -0,0 +1,44 @@
From f5bdd66c705484b4bc77eb914be15c1b7881fae7 Mon Sep 17 00:00:00 2001
From: Alexandra Yates <alexandra.yates@linux.intel.com>
Date: Wed, 17 Feb 2016 19:36:20 -0800
Subject: [PATCH] Adding Intel Lewisburg device IDs for SATA
This patch complements the list of device IDs previously
added for lewisburg sata.
Signed-off-by: Alexandra Yates <alexandra.yates@linux.intel.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org
---
drivers/ata/ahci.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 546a369..b6263b3 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -367,15 +367,21 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, 0xa107), board_ahci }, /* Sunrise Point-H RAID */
{ PCI_VDEVICE(INTEL, 0xa10f), board_ahci }, /* Sunrise Point-H RAID */
{ PCI_VDEVICE(INTEL, 0x2822), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Lewisburg AHCI*/
{ PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0xa182), board_ahci }, /* Lewisburg AHCI*/
{ PCI_VDEVICE(INTEL, 0xa184), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0xa186), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0xa18e), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa1d2), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa1d6), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0xa202), board_ahci }, /* Lewisburg AHCI*/
{ PCI_VDEVICE(INTEL, 0xa204), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0xa206), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0xa20e), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa252), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa256), board_ahci }, /* Lewisburg RAID*/
/* JMicron 360/1/3/5/6, match class to avoid IDE function */
{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
--
2.7.2
@@ -0,0 +1,45 @@
From dc8b4afc4a04fac8ee55a19b59f2356a25e7e778 Mon Sep 17 00:00:00 2001
From: Manuel Lauss <manuel.lauss@gmail.com>
Date: Sat, 27 Feb 2016 16:10:05 +0100
Subject: [PATCH] ata: ahci: don't mark HotPlugCapable Ports as
external/removable
The HPCP bit is set by bioses for on-board sata ports either because
they think sata is hotplug capable in general or to allow Windows
to display a "device eject" icon on ports which are routed to an
external connector bracket.
However in Redhat Bugzilla #1310682, users report that with kernel 4.4,
where this bit test first appeared, a lot of partitions on sata drives
are now mounted automatically.
This patch should fix redhat and a lot of other distros which
unconditionally automount all devices which have the "removable"
bit set.
Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Fixes: 8a3e33cf92c7 ("ata: ahci: find eSATA ports and flag them as removable" changes userspace behavior)
Link: http://lkml.kernel.org/g/56CF35FA.1070500@redhat.com
Cc: stable@vger.kernel.org #v4.4+
---
drivers/ata/libahci.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index 513b3fa..85ea514 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -1168,8 +1168,7 @@ static void ahci_port_init(struct device *dev, struct ata_port *ap,
/* mark esata ports */
tmp = readl(port_mmio + PORT_CMD);
- if ((tmp & PORT_CMD_HPCP) ||
- ((tmp & PORT_CMD_ESP) && (hpriv->cap & HOST_CAP_SXS)))
+ if ((tmp & PORT_CMD_ESP) && (hpriv->cap & HOST_CAP_SXS))
ap->pflags |= ATA_PFLAG_EXTERNAL;
}
--
2.7.2
@@ -20,12 +20,13 @@ diff --git a/drivers/Makefile b/drivers/Makefile
index 932e8bf..e8df3d0 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -64,9 +64,9 @@ obj-y += base/ block/ misc/ mfd/ nfc/
@@ -69,10 +69,10 @@ obj-$(CONFIG_LIBNVDIMM) += nvdimm/
obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/
obj-$(CONFIG_NUBUS) += nubus/
obj-y += macintosh/
-obj-$(CONFIG_IDE) += ide/
obj-$(CONFIG_SCSI) += scsi/
obj-y += nvme/
obj-$(CONFIG_ATA) += ata/
+obj-$(CONFIG_IDE) += ide/
obj-$(CONFIG_TARGET_CORE) += target/
@@ -0,0 +1,382 @@
fs/aufs/Kconfig | 2 +-
fs/dcache.c | 1 +
fs/exec.c | 1 +
fs/fcntl.c | 1 +
fs/file_table.c | 4 ++++
fs/namespace.c | 2 ++
fs/notify/group.c | 4 ++++
fs/notify/mark.c | 4 ++++
fs/open.c | 2 ++
fs/read_write.c | 2 ++
fs/splice.c | 2 ++
fs/xattr.c | 1 +
kernel/task_work.c | 1 +
security/commoncap.c | 2 ++
security/device_cgroup.c | 2 ++
security/security.c | 10 ++++++++++
16 files changed, 40 insertions(+), 1 deletion(-)
diff -Nurp linux-4.4.3-aufs/fs/aufs/Kconfig linux-4.4.3-aufs-mod/fs/aufs/Kconfig
--- linux-4.4.3-aufs/fs/aufs/Kconfig 2016-03-02 17:59:37.360498681 +0200
+++ linux-4.4.3-aufs-mod/fs/aufs/Kconfig 2016-03-03 09:50:41.232631276 +0200
@@ -1,5 +1,5 @@
config AUFS_FS
- bool "Aufs (Advanced multi layered unification filesystem) support"
+ tristate "Aufs (Advanced multi layered unification filesystem) support"
help
Aufs is a stackable unification filesystem such as Unionfs,
which unifies several directories and provides a merged single
diff -Nurp linux-4.4.3-aufs/fs/dcache.c linux-4.4.3-aufs-mod/fs/dcache.c
--- linux-4.4.3-aufs/fs/dcache.c 2016-03-02 17:59:37.376498796 +0200
+++ linux-4.4.3-aufs-mod/fs/dcache.c 2016-03-03 09:50:34.633586562 +0200
@@ -1272,6 +1272,7 @@ rename_retry:
seq = 1;
goto again;
}
+EXPORT_SYMBOL_GPL(d_walk);
/*
* Search for at least 1 mount point in the dentry's subdirs.
diff -Nurp linux-4.4.3-aufs/fs/exec.c linux-4.4.3-aufs-mod/fs/exec.c
--- linux-4.4.3-aufs/fs/exec.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/fs/exec.c 2016-03-03 09:50:34.633586562 +0200
@@ -103,6 +103,7 @@ bool path_noexec(const struct path *path
return (path->mnt->mnt_flags & MNT_NOEXEC) ||
(path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC);
}
+EXPORT_SYMBOL_GPL(path_noexec);
#ifdef CONFIG_USELIB
/*
diff -Nurp linux-4.4.3-aufs/fs/fcntl.c linux-4.4.3-aufs-mod/fs/fcntl.c
--- linux-4.4.3-aufs/fs/fcntl.c 2016-03-02 17:59:37.376498796 +0200
+++ linux-4.4.3-aufs-mod/fs/fcntl.c 2016-03-03 09:50:34.633586562 +0200
@@ -81,6 +81,7 @@ int setfl(int fd, struct file * filp, un
out:
return error;
}
+EXPORT_SYMBOL_GPL(setfl);
static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
int force)
diff -Nurp linux-4.4.3-aufs/fs/file_table.c linux-4.4.3-aufs-mod/fs/file_table.c
--- linux-4.4.3-aufs/fs/file_table.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/fs/file_table.c 2016-03-03 09:50:34.633586562 +0200
@@ -147,6 +147,7 @@ over:
}
return ERR_PTR(-ENFILE);
}
+EXPORT_SYMBOL_GPL(get_empty_filp);
/**
* alloc_file - allocate and initialize a 'struct file'
@@ -258,6 +259,7 @@ void flush_delayed_fput(void)
{
delayed_fput(NULL);
}
+EXPORT_SYMBOL_GPL(flush_delayed_fput);
static DECLARE_DELAYED_WORK(delayed_fput_work, delayed_fput);
@@ -300,6 +302,7 @@ void __fput_sync(struct file *file)
}
EXPORT_SYMBOL(fput);
+EXPORT_SYMBOL_GPL(__fput_sync);
void put_filp(struct file *file)
{
@@ -308,6 +311,7 @@ void put_filp(struct file *file)
file_free(file);
}
}
+EXPORT_SYMBOL_GPL(put_filp);
void __init files_init(void)
{
diff -Nurp linux-4.4.3-aufs/fs/namespace.c linux-4.4.3-aufs-mod/fs/namespace.c
--- linux-4.4.3-aufs/fs/namespace.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/fs/namespace.c 2016-03-03 09:50:34.634586569 +0200
@@ -463,6 +463,7 @@ void __mnt_drop_write(struct vfsmount *m
mnt_dec_writers(real_mount(mnt));
preempt_enable();
}
+EXPORT_SYMBOL_GPL(__mnt_drop_write);
/**
* mnt_drop_write - give up write access to a mount
@@ -1803,6 +1804,7 @@ int iterate_mounts(int (*f)(struct vfsmo
}
return 0;
}
+EXPORT_SYMBOL_GPL(iterate_mounts);
static void cleanup_group_ids(struct mount *mnt, struct mount *end)
{
diff -Nurp linux-4.4.3-aufs/fs/notify/group.c linux-4.4.3-aufs-mod/fs/notify/group.c
--- linux-4.4.3-aufs/fs/notify/group.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/fs/notify/group.c 2016-03-03 09:50:34.634586569 +0200
@@ -22,6 +22,7 @@
#include <linux/srcu.h>
#include <linux/rculist.h>
#include <linux/wait.h>
+#include <linux/module.h>
#include <linux/fsnotify_backend.h>
#include "fsnotify.h"
@@ -72,6 +73,7 @@ void fsnotify_get_group(struct fsnotify_
{
atomic_inc(&group->refcnt);
}
+EXPORT_SYMBOL_GPL(fsnotify_get_group);
/*
* Drop a reference to a group. Free it if it's through.
@@ -81,6 +83,7 @@ void fsnotify_put_group(struct fsnotify_
if (atomic_dec_and_test(&group->refcnt))
fsnotify_final_destroy_group(group);
}
+EXPORT_SYMBOL_GPL(fsnotify_put_group);
/*
* Create a new fsnotify_group and hold a reference for the group returned.
@@ -109,6 +112,7 @@ struct fsnotify_group *fsnotify_alloc_gr
return group;
}
+EXPORT_SYMBOL_GPL(fsnotify_alloc_group);
int fsnotify_fasync(int fd, struct file *file, int on)
{
diff -Nurp linux-4.4.3-aufs/fs/notify/mark.c linux-4.4.3-aufs-mod/fs/notify/mark.c
--- linux-4.4.3-aufs/fs/notify/mark.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/fs/notify/mark.c 2016-03-03 09:50:34.634586569 +0200
@@ -109,6 +109,7 @@ void fsnotify_put_mark(struct fsnotify_m
mark->free_mark(mark);
}
}
+EXPORT_SYMBOL_GPL(fsnotify_put_mark);
/* Calculate mask of events for a list of marks */
u32 fsnotify_recalc_mask(struct hlist_head *head)
@@ -208,6 +209,7 @@ void fsnotify_destroy_mark(struct fsnoti
mutex_unlock(&group->mark_mutex);
fsnotify_free_mark(mark);
}
+EXPORT_SYMBOL_GPL(fsnotify_destroy_mark);
void fsnotify_destroy_marks(struct hlist_head *head, spinlock_t *lock)
{
@@ -392,6 +394,7 @@ err:
return ret;
}
+EXPORT_SYMBOL_GPL(fsnotify_add_mark);
int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group,
struct inode *inode, struct vfsmount *mnt, int allow_dups)
@@ -492,6 +495,7 @@ void fsnotify_init_mark(struct fsnotify_
atomic_set(&mark->refcnt, 1);
mark->free_mark = free_mark;
}
+EXPORT_SYMBOL_GPL(fsnotify_init_mark);
static int fsnotify_mark_destroy(void *ignored)
{
diff -Nurp linux-4.4.3-aufs/fs/open.c linux-4.4.3-aufs-mod/fs/open.c
--- linux-4.4.3-aufs/fs/open.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/fs/open.c 2016-03-03 09:50:34.634586569 +0200
@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, l
mutex_unlock(&dentry->d_inode->i_mutex);
return ret;
}
+EXPORT_SYMBOL_GPL(do_truncate);
long vfs_truncate(struct path *path, loff_t length)
{
@@ -678,6 +679,7 @@ int open_check_o_direct(struct file *f)
}
return 0;
}
+EXPORT_SYMBOL_GPL(open_check_o_direct);
static int do_dentry_open(struct file *f,
struct inode *inode,
diff -Nurp linux-4.4.3-aufs/fs/read_write.c linux-4.4.3-aufs-mod/fs/read_write.c
--- linux-4.4.3-aufs/fs/read_write.c 2016-03-02 17:59:37.377498803 +0200
+++ linux-4.4.3-aufs-mod/fs/read_write.c 2016-03-03 09:50:34.634586569 +0200
@@ -504,6 +504,7 @@ vfs_readf_t vfs_readf(struct file *file)
return new_sync_read;
return ERR_PTR(-ENOSYS);
}
+EXPORT_SYMBOL_GPL(vfs_readf);
vfs_writef_t vfs_writef(struct file *file)
{
@@ -515,6 +516,7 @@ vfs_writef_t vfs_writef(struct file *fil
return new_sync_write;
return ERR_PTR(-ENOSYS);
}
+EXPORT_SYMBOL_GPL(vfs_writef);
ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos)
{
diff -Nurp linux-4.4.3-aufs/fs/splice.c linux-4.4.3-aufs-mod/fs/splice.c
--- linux-4.4.3-aufs/fs/splice.c 2016-03-02 17:59:37.377498803 +0200
+++ linux-4.4.3-aufs-mod/fs/splice.c 2016-03-03 09:50:34.635586575 +0200
@@ -1123,6 +1123,7 @@ long do_splice_from(struct pipe_inode_in
return splice_write(pipe, out, ppos, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_from);
/*
* Attempt to initiate a splice from a file to a pipe.
@@ -1149,6 +1150,7 @@ long do_splice_to(struct file *in, loff_
return splice_read(in, ppos, pipe, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_to);
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff -Nurp linux-4.4.3-aufs/fs/xattr.c linux-4.4.3-aufs-mod/fs/xattr.c
--- linux-4.4.3-aufs/fs/xattr.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/fs/xattr.c 2016-03-03 09:50:34.635586575 +0200
@@ -207,6 +207,7 @@ vfs_getxattr_alloc(struct dentry *dentry
*xattr_value = value;
return error;
}
+EXPORT_SYMBOL_GPL(vfs_getxattr_alloc);
/* Compare an extended attribute value with the given value */
int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name,
diff -Nurp linux-4.4.3-aufs/kernel/task_work.c linux-4.4.3-aufs-mod/kernel/task_work.c
--- linux-4.4.3-aufs/kernel/task_work.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/kernel/task_work.c 2016-03-03 09:50:34.635586575 +0200
@@ -118,3 +118,4 @@ void task_work_run(void)
} while (work);
}
}
+EXPORT_SYMBOL_GPL(task_work_run);
diff -Nurp linux-4.4.3-aufs/security/commoncap.c linux-4.4.3-aufs-mod/security/commoncap.c
--- linux-4.4.3-aufs/security/commoncap.c 2016-03-02 17:42:59.463713410 +0200
+++ linux-4.4.3-aufs-mod/security/commoncap.c 2016-03-03 09:50:34.635586575 +0200
@@ -1058,12 +1058,14 @@ int cap_mmap_addr(unsigned long addr)
}
return ret;
}
+EXPORT_SYMBOL_GPL(cap_mmap_addr);
int cap_mmap_file(struct file *file, unsigned long reqprot,
unsigned long prot, unsigned long flags)
{
return 0;
}
+EXPORT_SYMBOL_GPL(cap_mmap_file);
#ifdef CONFIG_SECURITY
diff -Nurp linux-4.4.3-aufs/security/device_cgroup.c linux-4.4.3-aufs-mod/security/device_cgroup.c
--- linux-4.4.3-aufs/security/device_cgroup.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/security/device_cgroup.c 2016-03-03 09:50:34.635586575 +0200
@@ -7,6 +7,7 @@
#include <linux/device_cgroup.h>
#include <linux/cgroup.h>
#include <linux/ctype.h>
+#include <linux/export.h>
#include <linux/list.h>
#include <linux/uaccess.h>
#include <linux/seq_file.h>
@@ -849,6 +850,7 @@ int __devcgroup_inode_permission(struct
return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
access);
}
+EXPORT_SYMBOL_GPL(__devcgroup_inode_permission);
int devcgroup_inode_mknod(int mode, dev_t dev)
{
diff -Nurp linux-4.4.3-aufs/security/security.c linux-4.4.3-aufs-mod/security/security.c
--- linux-4.4.3-aufs/security/security.c 2016-01-11 01:01:32.000000000 +0200
+++ linux-4.4.3-aufs-mod/security/security.c 2016-03-03 09:50:34.636586582 +0200
@@ -433,6 +433,7 @@ int security_path_rmdir(struct path *dir
return 0;
return call_int_hook(path_rmdir, 0, dir, dentry);
}
+EXPORT_SYMBOL_GPL(security_path_rmdir);
int security_path_unlink(struct path *dir, struct dentry *dentry)
{
@@ -449,6 +450,7 @@ int security_path_symlink(struct path *d
return 0;
return call_int_hook(path_symlink, 0, dir, dentry, old_name);
}
+EXPORT_SYMBOL_GPL(security_path_symlink);
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
struct dentry *new_dentry)
@@ -457,6 +459,7 @@ int security_path_link(struct dentry *ol
return 0;
return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
}
+EXPORT_SYMBOL_GPL(security_path_link);
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
struct path *new_dir, struct dentry *new_dentry,
@@ -484,6 +487,7 @@ int security_path_truncate(struct path *
return 0;
return call_int_hook(path_truncate, 0, path);
}
+EXPORT_SYMBOL_GPL(security_path_truncate);
int security_path_chmod(struct path *path, umode_t mode)
{
@@ -491,6 +495,7 @@ int security_path_chmod(struct path *pat
return 0;
return call_int_hook(path_chmod, 0, path, mode);
}
+EXPORT_SYMBOL_GPL(security_path_chmod);
int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
{
@@ -498,6 +503,7 @@ int security_path_chown(struct path *pat
return 0;
return call_int_hook(path_chown, 0, path, uid, gid);
}
+EXPORT_SYMBOL_GPL(security_path_chown);
int security_path_chroot(struct path *path)
{
@@ -583,6 +589,7 @@ int security_inode_readlink(struct dentr
return 0;
return call_int_hook(inode_readlink, 0, dentry);
}
+EXPORT_SYMBOL_GPL(security_inode_readlink);
int security_inode_follow_link(struct dentry *dentry, struct inode *inode,
bool rcu)
@@ -598,6 +605,7 @@ int security_inode_permission(struct ino
return 0;
return call_int_hook(inode_permission, 0, inode, mask);
}
+EXPORT_SYMBOL_GPL(security_inode_permission);
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -736,6 +744,7 @@ int security_file_permission(struct file
return fsnotify_perm(file, mask);
}
+EXPORT_SYMBOL_GPL(security_file_permission);
int security_file_alloc(struct file *file)
{
@@ -795,6 +804,7 @@ int security_mmap_file(struct file *file
return ret;
return ima_file_mmap(file, prot);
}
+EXPORT_SYMBOL_GPL(security_mmap_file);
int security_mmap_addr(unsigned long addr)
{
@@ -1,341 +0,0 @@
fs/aufs/Kconfig | 2 +-
fs/dcache.c | 1 +
fs/file_table.c | 2 ++
fs/inode.c | 2 ++
fs/namespace.c | 2 ++
fs/notify/group.c | 4 ++++
fs/notify/mark.c | 4 ++++
fs/open.c | 2 ++
fs/read_write.c | 2 ++
fs/splice.c | 2 ++
security/commoncap.c | 2 ++
security/device_cgroup.c | 2 ++
security/security.c | 10 ++++++++++
13 files changed, 36 insertions(+), 1 deletion(-)
diff -Nurp linux-4.2.2-aufs4/fs/aufs/Kconfig linux-4.2.2-aufs4-mod/fs/aufs/Kconfig
--- linux-4.2.2-aufs4/fs/aufs/Kconfig 2015-09-29 23:28:44.631823736 +0300
+++ linux-4.2.2-aufs4-mod/fs/aufs/Kconfig 2015-09-29 23:48:32.711006787 +0300
@@ -1,5 +1,5 @@
config AUFS_FS
- bool "Aufs (Advanced multi layered unification filesystem) support"
+ tristate "Aufs (Advanced multi layered unification filesystem) support"
help
Aufs is a stackable unification filesystem such as Unionfs,
which unifies several directories and provides a merged single
diff -Nurp linux-4.2.2-aufs4/fs/dcache.c linux-4.2.2-aufs4-mod/fs/dcache.c
--- linux-4.2.2-aufs4/fs/dcache.c 2015-09-29 23:28:44.644823810 +0300
+++ linux-4.2.2-aufs4-mod/fs/dcache.c 2015-09-29 23:48:32.711006787 +0300
@@ -1272,6 +1272,7 @@ rename_retry:
seq = 1;
goto again;
}
+EXPORT_SYMBOL_GPL(d_walk);
/*
* Search for at least 1 mount point in the dentry's subdirs.
diff -Nurp linux-4.2.2-aufs4/fs/file_table.c linux-4.2.2-aufs4-mod/fs/file_table.c
--- linux-4.2.2-aufs4/fs/file_table.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/file_table.c 2015-09-29 23:48:32.711006787 +0300
@@ -147,6 +147,7 @@ over:
}
return ERR_PTR(-ENFILE);
}
+EXPORT_SYMBOL(get_empty_filp);
/**
* alloc_file - allocate and initialize a 'struct file'
@@ -308,6 +309,7 @@ void put_filp(struct file *file)
file_free(file);
}
}
+EXPORT_SYMBOL(put_filp);
void __init files_init(void)
{
diff -Nurp linux-4.2.2-aufs4/fs/inode.c linux-4.2.2-aufs4-mod/fs/inode.c
--- linux-4.2.2-aufs4/fs/inode.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/inode.c 2015-09-29 23:48:32.712006792 +0300
@@ -58,6 +58,7 @@ static struct hlist_head *inode_hashtabl
static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
__cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
+EXPORT_SYMBOL(inode_sb_list_lock);
/*
* Empty aops. Can be used for the cases where the user does not
@@ -1581,6 +1582,7 @@ static int update_time(struct inode *ino
return update_time(inode, time, flags);
}
+EXPORT_SYMBOL(update_time);
/**
* touch_atime - update the access time
diff -Nurp linux-4.2.2-aufs4/fs/namespace.c linux-4.2.2-aufs4-mod/fs/namespace.c
--- linux-4.2.2-aufs4/fs/namespace.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/namespace.c 2015-09-29 23:48:32.712006792 +0300
@@ -463,6 +463,7 @@ void __mnt_drop_write(struct vfsmount *m
mnt_dec_writers(real_mount(mnt));
preempt_enable();
}
+EXPORT_SYMBOL_GPL(__mnt_drop_write);
/**
* mnt_drop_write - give up write access to a mount
@@ -1803,6 +1804,7 @@ int iterate_mounts(int (*f)(struct vfsmo
}
return 0;
}
+EXPORT_SYMBOL(iterate_mounts);
static void cleanup_group_ids(struct mount *mnt, struct mount *end)
{
diff -Nurp linux-4.2.2-aufs4/fs/notify/group.c linux-4.2.2-aufs4-mod/fs/notify/group.c
--- linux-4.2.2-aufs4/fs/notify/group.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/notify/group.c 2015-09-29 23:48:32.712006792 +0300
@@ -22,6 +22,7 @@
#include <linux/srcu.h>
#include <linux/rculist.h>
#include <linux/wait.h>
+#include <linux/module.h>
#include <linux/fsnotify_backend.h>
#include "fsnotify.h"
@@ -72,6 +73,7 @@ void fsnotify_get_group(struct fsnotify_
{
atomic_inc(&group->refcnt);
}
+EXPORT_SYMBOL(fsnotify_get_group);
/*
* Drop a reference to a group. Free it if it's through.
@@ -81,6 +83,7 @@ void fsnotify_put_group(struct fsnotify_
if (atomic_dec_and_test(&group->refcnt))
fsnotify_final_destroy_group(group);
}
+EXPORT_SYMBOL(fsnotify_put_group);
/*
* Create a new fsnotify_group and hold a reference for the group returned.
@@ -109,6 +112,7 @@ struct fsnotify_group *fsnotify_alloc_gr
return group;
}
+EXPORT_SYMBOL(fsnotify_alloc_group);
int fsnotify_fasync(int fd, struct file *file, int on)
{
diff -Nurp linux-4.2.2-aufs4/fs/notify/mark.c linux-4.2.2-aufs4-mod/fs/notify/mark.c
--- linux-4.2.2-aufs4/fs/notify/mark.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/notify/mark.c 2015-09-29 23:48:32.713006798 +0300
@@ -109,6 +109,7 @@ void fsnotify_put_mark(struct fsnotify_m
mark->free_mark(mark);
}
}
+EXPORT_SYMBOL(fsnotify_put_mark);
/* Calculate mask of events for a list of marks */
u32 fsnotify_recalc_mask(struct hlist_head *head)
@@ -202,6 +203,7 @@ void fsnotify_destroy_mark(struct fsnoti
fsnotify_destroy_mark_locked(mark, group);
mutex_unlock(&group->mark_mutex);
}
+EXPORT_SYMBOL(fsnotify_destroy_mark);
/*
* Destroy all marks in the given list. The marks must be already detached from
@@ -386,6 +388,7 @@ int fsnotify_add_mark(struct fsnotify_ma
mutex_unlock(&group->mark_mutex);
return ret;
}
+EXPORT_SYMBOL(fsnotify_add_mark);
/*
* Given a list of marks, find the mark associated with given group. If found
@@ -475,6 +478,7 @@ void fsnotify_init_mark(struct fsnotify_
atomic_set(&mark->refcnt, 1);
mark->free_mark = free_mark;
}
+EXPORT_SYMBOL(fsnotify_init_mark);
static int fsnotify_mark_destroy(void *ignored)
{
diff -Nurp linux-4.2.2-aufs4/fs/open.c linux-4.2.2-aufs4-mod/fs/open.c
--- linux-4.2.2-aufs4/fs/open.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/open.c 2015-09-29 23:48:32.713006798 +0300
@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, l
mutex_unlock(&dentry->d_inode->i_mutex);
return ret;
}
+EXPORT_SYMBOL(do_truncate);
long vfs_truncate(struct path *path, loff_t length)
{
@@ -678,6 +679,7 @@ int open_check_o_direct(struct file *f)
}
return 0;
}
+EXPORT_SYMBOL(open_check_o_direct);
static int do_dentry_open(struct file *f,
struct inode *inode,
diff -Nurp linux-4.2.2-aufs4/fs/read_write.c linux-4.2.2-aufs4-mod/fs/read_write.c
--- linux-4.2.2-aufs4/fs/read_write.c 2015-09-29 23:28:44.645823816 +0300
+++ linux-4.2.2-aufs4-mod/fs/read_write.c 2015-09-29 23:48:32.713006798 +0300
@@ -504,6 +504,7 @@ vfs_readf_t vfs_readf(struct file *file)
return new_sync_read;
return ERR_PTR(-ENOSYS);
}
+EXPORT_SYMBOL(vfs_readf);
vfs_writef_t vfs_writef(struct file *file)
{
@@ -515,6 +516,7 @@ vfs_writef_t vfs_writef(struct file *fil
return new_sync_write;
return ERR_PTR(-ENOSYS);
}
+EXPORT_SYMBOL(vfs_writef);
ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos)
{
diff -Nurp linux-4.2.2-aufs4/fs/splice.c linux-4.2.2-aufs4-mod/fs/splice.c
--- linux-4.2.2-aufs4/fs/splice.c 2015-09-29 23:28:44.646823822 +0300
+++ linux-4.2.2-aufs4-mod/fs/splice.c 2015-09-29 23:48:32.713006798 +0300
@@ -1115,6 +1115,7 @@ long do_splice_from(struct pipe_inode_in
return splice_write(pipe, out, ppos, len, flags);
}
+EXPORT_SYMBOL(do_splice_from);
/*
* Attempt to initiate a splice from a file to a pipe.
@@ -1141,6 +1142,7 @@ long do_splice_to(struct file *in, loff_
return splice_read(in, ppos, pipe, len, flags);
}
+EXPORT_SYMBOL(do_splice_to);
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff -Nurp linux-4.2.2-aufs4/security/commoncap.c linux-4.2.2-aufs4-mod/security/commoncap.c
--- linux-4.2.2-aufs4/security/commoncap.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/security/commoncap.c 2015-09-29 23:56:55.210817277 +0300
@@ -970,12 +970,14 @@ int cap_mmap_addr(unsigned long addr)
}
return ret;
}
+EXPORT_SYMBOL(cap_mmap_addr);
int cap_mmap_file(struct file *file, unsigned long reqprot,
unsigned long prot, unsigned long flags)
{
return 0;
}
+EXPORT_SYMBOL(cap_mmap_file);
#ifdef CONFIG_SECURITY
diff -Nurp linux-4.2.2-aufs4/security/device_cgroup.c linux-4.2.2-aufs4-mod/security/device_cgroup.c
--- linux-4.2.2-aufs4/security/device_cgroup.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/security/device_cgroup.c 2015-09-29 23:48:32.714006803 +0300
@@ -7,6 +7,7 @@
#include <linux/device_cgroup.h>
#include <linux/cgroup.h>
#include <linux/ctype.h>
+#include <linux/export.h>
#include <linux/list.h>
#include <linux/uaccess.h>
#include <linux/seq_file.h>
@@ -849,6 +850,7 @@ int __devcgroup_inode_permission(struct
return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
access);
}
+EXPORT_SYMBOL(__devcgroup_inode_permission);
int devcgroup_inode_mknod(int mode, dev_t dev)
{
diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/security.c
--- linux-4.2.2-aufs4/security/security.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/security/security.c 2015-09-29 23:48:32.715006809 +0300
@@ -438,6 +438,7 @@ int security_path_rmdir(struct path *dir
return 0;
return call_int_hook(path_rmdir, 0, dir, dentry);
}
+EXPORT_SYMBOL(security_path_rmdir);
int security_path_unlink(struct path *dir, struct dentry *dentry)
{
@@ -454,6 +455,7 @@ int security_path_symlink(struct path *d
return 0;
return call_int_hook(path_symlink, 0, dir, dentry, old_name);
}
+EXPORT_SYMBOL(security_path_symlink);
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
struct dentry *new_dentry)
@@ -462,6 +464,7 @@ int security_path_link(struct dentry *ol
return 0;
return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
}
+EXPORT_SYMBOL(security_path_link);
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
struct path *new_dir, struct dentry *new_dentry,
@@ -489,6 +492,7 @@ int security_path_truncate(struct path *
return 0;
return call_int_hook(path_truncate, 0, path);
}
+EXPORT_SYMBOL(security_path_truncate);
int security_path_chmod(struct path *path, umode_t mode)
{
@@ -496,6 +500,7 @@ int security_path_chmod(struct path *pat
return 0;
return call_int_hook(path_chmod, 0, path, mode);
}
+EXPORT_SYMBOL(security_path_chmod);
int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
{
@@ -503,6 +508,7 @@ int security_path_chown(struct path *pat
return 0;
return call_int_hook(path_chown, 0, path, uid, gid);
}
+EXPORT_SYMBOL(security_path_chown);
int security_path_chroot(struct path *path)
{
@@ -588,6 +594,7 @@ int security_inode_readlink(struct dentr
return 0;
return call_int_hook(inode_readlink, 0, dentry);
}
+EXPORT_SYMBOL(security_inode_readlink);
int security_inode_follow_link(struct dentry *dentry, struct inode *inode,
bool rcu)
@@ -603,6 +610,7 @@ int security_inode_permission(struct ino
return 0;
return call_int_hook(inode_permission, 0, inode, mask);
}
+EXPORT_SYMBOL(security_inode_permission);
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -741,6 +749,7 @@ int security_file_permission(struct file
return fsnotify_perm(file, mask);
}
+EXPORT_SYMBOL(security_file_permission);
int security_file_alloc(struct file *file)
{
@@ -800,6 +809,7 @@ int security_mmap_file(struct file *file
return ret;
return ima_file_mmap(file, prot);
}
+EXPORT_SYMBOL(security_mmap_file);
int security_mmap_addr(unsigned long addr)
{
@@ -1,53 +0,0 @@
From 0f89abf56abbd0e1c6e3cef9813e6d9f05383c1e Mon Sep 17 00:00:00 2001
From: Christian Engelmayer <cengelma@gmx.at>
Date: Wed, 21 Oct 2015 00:50:06 +0200
Subject: btrfs: fix possible leak in btrfs_ioctl_balance()
Commit 8eb934591f8b ("btrfs: check unsupported filters in balance
arguments") adds a jump to exit label out_bargs in case the argument
check fails. At this point in addition to the bargs memory, the
memory for struct btrfs_balance_control has already been allocated.
Ownership of bctl is passed to btrfs_balance() in the good case,
thus the memory is not freed due to the introduced jump. Make sure
that the memory gets freed in any case as necessary. Detected by
Coverity CID 1328378.
Signed-off-by: Christian Engelmayer <cengelma@gmx.at>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
---
fs/btrfs/ioctl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 3e3e613..8d20f3b 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -4641,7 +4641,7 @@ locked:
if (bctl->flags & ~(BTRFS_BALANCE_ARGS_MASK | BTRFS_BALANCE_TYPE_MASK)) {
ret = -EINVAL;
- goto out_bargs;
+ goto out_bctl;
}
do_balance:
@@ -4655,12 +4655,15 @@ do_balance:
need_unlock = false;
ret = btrfs_balance(bctl, bargs);
+ bctl = NULL;
if (arg) {
if (copy_to_user(arg, bargs, sizeof(*bargs)))
ret = -EFAULT;
}
+out_bctl:
+ kfree(bctl);
out_bargs:
kfree(bargs);
out_unlock:
--
cgit v0.11.2
@@ -0,0 +1,46 @@
From 257f871993474e2bde6c497b54022c362cf398e1 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 4 Nov 2015 10:59:52 -0800
Subject: [PATCH 3/6] ovl: move super block magic number to magic.h
The overlayfs file system is not recognized by programs
like tail because the magic number is not in standard header location.
Move it so that the value will propagate on for the GNU library
and utilities. Needs to go in the fstatfs manual page as well.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
---
fs/overlayfs/super.c | 2 --
include/uapi/linux/magic.h | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index 97cacb5..32f3124 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -24,8 +24,6 @@ MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>");
MODULE_DESCRIPTION("Overlay filesystem");
MODULE_LICENSE("GPL");
-#define OVERLAYFS_SUPER_MAGIC 0x794c7630
-
struct ovl_config {
char *lowerdir;
char *upperdir;
diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
index 7b1425a..eec4389 100644
--- a/include/uapi/linux/magic.h
+++ b/include/uapi/linux/magic.h
@@ -31,6 +31,7 @@
#define PSTOREFS_MAGIC 0x6165676C
#define EFIVARFS_MAGIC 0xde5e81e4
#define HOSTFS_SUPER_MAGIC 0x00c0ffee
+#define OVERLAYFS_SUPER_MAGIC 0x794c7630
#define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
#define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
--
2.7.0
@@ -0,0 +1,30 @@
From a6351c68fe1ea89ebb39e8c405d622464bcb339e Mon Sep 17 00:00:00 2001
From: Philipp Zabel <philipp.zabel@gmail.com>
Date: Thu, 2 Apr 2015 17:29:03 +0200
Subject: [PATCH 1/4] devicetree: add vendor prefix for Vivante Corporation
Trivial patch to add Vivante Corporation to the list of
devicetree vendor prefixes.
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Rob Herring <robh@kernel.org>
---
Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 55df1d4..c2767a7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -238,6 +238,7 @@ v3 V3 Semiconductor
variscite Variscite Ltd.
via VIA Technologies, Inc.
virtio Virtual I/O Device Specification, developed by the OASIS consortium
+vivante Vivante Corporation
voipac Voipac Technologies s.r.o.
wexler Wexler
winbond Winbond Electronics corp.
--
2.6.4
@@ -0,0 +1,79 @@
From f04b205ac143413831b193f39fd9592665111d4b Mon Sep 17 00:00:00 2001
From: Lucas Stach <l.stach@pengutronix.de>
Date: Thu, 2 Apr 2015 17:29:04 +0200
Subject: [PATCH 2/4] drm/etnaviv: add devicetree bindings
Etnaviv follows the same priciple as imx-drm to have a virtual
master device node to bind all the individual GPU cores together
into one DRM device.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Rob Herring <robh@kernel.org>
---
.../bindings/display/etnaviv/etnaviv-drm.txt | 54 ++++++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt
diff --git a/Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt b/Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt
new file mode 100644
index 0000000..ed5e0a7
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt
@@ -0,0 +1,54 @@
+Etnaviv DRM master device
+=========================
+
+The Etnaviv DRM master device is a virtual device needed to list all
+Vivante GPU cores that comprise the GPU subsystem.
+
+Required properties:
+- compatible: Should be one of
+ "fsl,imx-gpu-subsystem"
+ "marvell,dove-gpu-subsystem"
+- cores: Should contain a list of phandles pointing to Vivante GPU devices
+
+example:
+
+gpu-subsystem {
+ compatible = "fsl,imx-gpu-subsystem";
+ cores = <&gpu_2d>, <&gpu_3d>;
+};
+
+
+Vivante GPU core devices
+========================
+
+Required properties:
+- compatible: Should be "vivante,gc"
+ A more specific compatible is not needed, as the cores contain chip
+ identification registers at fixed locations, which provide all the
+ necessary information to the driver.
+- reg: should be register base and length as documented in the
+ datasheet
+- interrupts: Should contain the cores interrupt line
+- clocks: should contain one clock for entry in clock-names
+ see Documentation/devicetree/bindings/clock/clock-bindings.txt
+- clock-names:
+ - "bus": AXI/register clock
+ - "core": GPU core clock
+ - "shader": Shader clock (only required if GPU has feature PIPE_3D)
+
+Optional properties:
+- power-domains: a power domain consumer specifier according to
+ Documentation/devicetree/bindings/power/power_domain.txt
+
+example:
+
+gpu_3d: gpu@00130000 {
+ compatible = "vivante,gc";
+ reg = <0x00130000 0x4000>;
+ interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6QDL_CLK_GPU3D_AXI>,
+ <&clks IMX6QDL_CLK_GPU3D_CORE>,
+ <&clks IMX6QDL_CLK_GPU3D_SHADER>;
+ clock-names = "bus", "core", "shader";
+ power-domains = <&gpc 1>;
+};
--
2.6.4
@@ -0,0 +1,36 @@
From 8bb0bce92ec9330b0ea931df90f719fb5c4a5224 Mon Sep 17 00:00:00 2001
From: Lucas Stach <l.stach@pengutronix.de>
Date: Thu, 3 Dec 2015 17:12:07 +0100
Subject: [PATCH 4/4] MAINTAINERS: add maintainer and reviewers for the etnaviv
DRM driver
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Christian Gmeiner <christian.gmeiner@gmail.com>
---
MAINTAINERS | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index e9caa4b..9990a3b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3741,6 +3741,15 @@ S: Maintained
F: drivers/gpu/drm/sti
F: Documentation/devicetree/bindings/display/st,stih4xx.txt
+DRM DRIVERS FOR VIVANTE GPU IP
+M: Lucas Stach <l.stach@pengutronix.de>
+R: Russell King <linux+etnaviv@arm.linux.org.uk>
+R: Christian Gmeiner <christian.gmeiner@gmail.com>
+L: dri-devel@lists.freedesktop.org
+S: Maintained
+F: drivers/gpu/drm/etnaviv
+F: Documentation/devicetree/bindings/display/etnaviv
+
DSBR100 USB FM RADIO DRIVER
M: Alexey Klimov <klimov.linux@gmail.com>
L: linux-media@vger.kernel.org
--
2.6.4
@@ -0,0 +1,34 @@
From ed94add00e290e675c36cef6767d7d1f51a02f28 Mon Sep 17 00:00:00 2001
From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Mon, 4 Jan 2016 16:10:24 +0300
Subject: [PATCH 1/2] drm/etnaviv: unlock on error in etnaviv_gem_get_iova()
We have to drop a lock before returning -ENOMEM here.
Fixes: a8c21a5451d8 ('drm/etnaviv: add initial etnaviv DRM driver')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
index 8d6f859..9f77c3b 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
@@ -305,8 +305,10 @@ int etnaviv_gem_get_iova(struct etnaviv_gpu *gpu,
mapping = etnaviv_gem_get_vram_mapping(etnaviv_obj, NULL);
if (!mapping) {
mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
- if (!mapping)
- return -ENOMEM;
+ if (!mapping) {
+ ret = -ENOMEM;
+ goto out;
+ }
INIT_LIST_HEAD(&mapping->scan_node);
mapping->object = etnaviv_obj;
--
2.7.0
@@ -0,0 +1,38 @@
From c33246d793b5bb9d8be7c67918136c310185c23d Mon Sep 17 00:00:00 2001
From: Lucas Stach <l.stach@pengutronix.de>
Date: Wed, 6 Jan 2016 14:36:40 +0100
Subject: [PATCH 2/2] drm/etnaviv: fix workaround for GC500
The hardware description macros define the mask and shifts the wrong
way around for the intended use, leading to the condition never being
true and the chip revision ending up with the wrong value.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Christian Gmeiner <christian.gmeiner@gmail.com>
---
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
index d39093d..056a72e 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -251,9 +251,12 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
chipIdentity = gpu_read(gpu, VIVS_HI_CHIP_IDENTITY);
/* Special case for older graphic cores. */
- if (VIVS_HI_CHIP_IDENTITY_FAMILY(chipIdentity) == 0x01) {
+ if (((chipIdentity & VIVS_HI_CHIP_IDENTITY_FAMILY__MASK)
+ >> VIVS_HI_CHIP_IDENTITY_FAMILY__SHIFT) == 0x01) {
gpu->identity.model = 0x500; /* gc500 */
- gpu->identity.revision = VIVS_HI_CHIP_IDENTITY_REVISION(chipIdentity);
+ gpu->identity.revision =
+ (chipIdentity & VIVS_HI_CHIP_IDENTITY_REVISION__MASK)
+ >> VIVS_HI_CHIP_IDENTITY_REVISION__SHIFT;
} else {
gpu->identity.model = gpu_read(gpu, VIVS_HI_CHIP_MODEL);
--
2.7.0
@@ -0,0 +1,62 @@
From 10028c5ab107d3765c7fc282b6c45324d1602155 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Mon, 30 Nov 2015 10:55:13 -0800
Subject: [PATCH 1/9] drm: Create a driver hook for allocating GEM object
structs.
The CMA helpers had no way for a driver to extend the struct with its
own fields. Since the CMA helpers are mostly "Allocate a
drm_gem_cma_object, then fill in a few fields", it's hard to write as
pure helpers without passing in a driver callback for the allocate
step.
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/drm_gem_cma_helper.c | 10 ++++++----
include/drm/drmP.h | 7 +++++++
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c
index e109b49..0f7b00b 100644
--- a/drivers/gpu/drm/drm_gem_cma_helper.c
+++ b/drivers/gpu/drm/drm_gem_cma_helper.c
@@ -59,11 +59,13 @@ __drm_gem_cma_create(struct drm_device *drm, size_t size)
struct drm_gem_object *gem_obj;
int ret;
- cma_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL);
- if (!cma_obj)
+ if (drm->driver->gem_create_object)
+ gem_obj = drm->driver->gem_create_object(drm, size);
+ else
+ gem_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL);
+ if (!gem_obj)
return ERR_PTR(-ENOMEM);
-
- gem_obj = &cma_obj->base;
+ cma_obj = container_of(gem_obj, struct drm_gem_cma_object, base);
ret = drm_gem_object_init(drm, gem_obj, size);
if (ret)
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 0b921ae..22ff162 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -580,6 +580,13 @@ struct drm_driver {
int (*gem_open_object) (struct drm_gem_object *, struct drm_file *);
void (*gem_close_object) (struct drm_gem_object *, struct drm_file *);
+ /**
+ * Hook for allocating the GEM object struct, for use by core
+ * helpers.
+ */
+ struct drm_gem_object *(*gem_create_object)(struct drm_device *dev,
+ size_t size);
+
/* prime: */
/* export handle -> fd (see drm_gem_prime_handle_to_fd() helper) */
int (*prime_handle_to_fd)(struct drm_device *dev, struct drm_file *file_priv,
--
2.6.4
@@ -0,0 +1,512 @@
From c826a6e1064419f78855463cf29ce9e8b9d25bf4 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Fri, 9 Oct 2015 20:25:07 -0700
Subject: [PATCH 2/9] drm/vc4: Add a BO cache.
We need to allocate new BOs in the kernel as part of each frame, but
the CMA allocator is way too slow for that. As an optimization, keep
track of recently-freed BOs and reuse them, with a 1 second timeout to
fully free them back to the system.
This improves 3D performance by about 15%.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
drivers/gpu/drm/vc4/vc4_bo.c | 336 +++++++++++++++++++++++++++++++++++++-
drivers/gpu/drm/vc4/vc4_debugfs.c | 1 +
drivers/gpu/drm/vc4/vc4_drv.c | 6 +-
drivers/gpu/drm/vc4/vc4_drv.h | 49 +++++-
4 files changed, 384 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
index ab9f510..18faa5b 100644
--- a/drivers/gpu/drm/vc4/vc4_bo.c
+++ b/drivers/gpu/drm/vc4/vc4_bo.c
@@ -12,19 +12,229 @@
* access to system memory with no MMU in between. To support it, we
* use the GEM CMA helper functions to allocate contiguous ranges of
* physical memory for our BOs.
+ *
+ * Since the CMA allocator is very slow, we keep a cache of recently
+ * freed BOs around so that the kernel's allocation of objects for 3D
+ * rendering can return quickly.
*/
#include "vc4_drv.h"
-struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size)
+static void vc4_bo_stats_dump(struct vc4_dev *vc4)
+{
+ DRM_INFO("num bos allocated: %d\n",
+ vc4->bo_stats.num_allocated);
+ DRM_INFO("size bos allocated: %dkb\n",
+ vc4->bo_stats.size_allocated / 1024);
+ DRM_INFO("num bos used: %d\n",
+ vc4->bo_stats.num_allocated - vc4->bo_stats.num_cached);
+ DRM_INFO("size bos used: %dkb\n",
+ (vc4->bo_stats.size_allocated -
+ vc4->bo_stats.size_cached) / 1024);
+ DRM_INFO("num bos cached: %d\n",
+ vc4->bo_stats.num_cached);
+ DRM_INFO("size bos cached: %dkb\n",
+ vc4->bo_stats.size_cached / 1024);
+}
+
+#ifdef CONFIG_DEBUG_FS
+int vc4_bo_stats_debugfs(struct seq_file *m, void *unused)
+{
+ struct drm_info_node *node = (struct drm_info_node *)m->private;
+ struct drm_device *dev = node->minor->dev;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ struct vc4_bo_stats stats;
+
+ /* Take a snapshot of the current stats with the lock held. */
+ mutex_lock(&vc4->bo_lock);
+ stats = vc4->bo_stats;
+ mutex_unlock(&vc4->bo_lock);
+
+ seq_printf(m, "num bos allocated: %d\n",
+ stats.num_allocated);
+ seq_printf(m, "size bos allocated: %dkb\n",
+ stats.size_allocated / 1024);
+ seq_printf(m, "num bos used: %d\n",
+ stats.num_allocated - stats.num_cached);
+ seq_printf(m, "size bos used: %dkb\n",
+ (stats.size_allocated - stats.size_cached) / 1024);
+ seq_printf(m, "num bos cached: %d\n",
+ stats.num_cached);
+ seq_printf(m, "size bos cached: %dkb\n",
+ stats.size_cached / 1024);
+
+ return 0;
+}
+#endif
+
+static uint32_t bo_page_index(size_t size)
+{
+ return (size / PAGE_SIZE) - 1;
+}
+
+/* Must be called with bo_lock held. */
+static void vc4_bo_destroy(struct vc4_bo *bo)
{
+ struct drm_gem_object *obj = &bo->base.base;
+ struct vc4_dev *vc4 = to_vc4_dev(obj->dev);
+
+ vc4->bo_stats.num_allocated--;
+ vc4->bo_stats.size_allocated -= obj->size;
+ drm_gem_cma_free_object(obj);
+}
+
+/* Must be called with bo_lock held. */
+static void vc4_bo_remove_from_cache(struct vc4_bo *bo)
+{
+ struct drm_gem_object *obj = &bo->base.base;
+ struct vc4_dev *vc4 = to_vc4_dev(obj->dev);
+
+ vc4->bo_stats.num_cached--;
+ vc4->bo_stats.size_cached -= obj->size;
+
+ list_del(&bo->unref_head);
+ list_del(&bo->size_head);
+}
+
+static struct list_head *vc4_get_cache_list_for_size(struct drm_device *dev,
+ size_t size)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ uint32_t page_index = bo_page_index(size);
+
+ if (vc4->bo_cache.size_list_size <= page_index) {
+ uint32_t new_size = max(vc4->bo_cache.size_list_size * 2,
+ page_index + 1);
+ struct list_head *new_list;
+ uint32_t i;
+
+ new_list = kmalloc_array(new_size, sizeof(struct list_head),
+ GFP_KERNEL);
+ if (!new_list)
+ return NULL;
+
+ /* Rebase the old cached BO lists to their new list
+ * head locations.
+ */
+ for (i = 0; i < vc4->bo_cache.size_list_size; i++) {
+ struct list_head *old_list =
+ &vc4->bo_cache.size_list[i];
+
+ if (list_empty(old_list))
+ INIT_LIST_HEAD(&new_list[i]);
+ else
+ list_replace(old_list, &new_list[i]);
+ }
+ /* And initialize the brand new BO list heads. */
+ for (i = vc4->bo_cache.size_list_size; i < new_size; i++)
+ INIT_LIST_HEAD(&new_list[i]);
+
+ kfree(vc4->bo_cache.size_list);
+ vc4->bo_cache.size_list = new_list;
+ vc4->bo_cache.size_list_size = new_size;
+ }
+
+ return &vc4->bo_cache.size_list[page_index];
+}
+
+void vc4_bo_cache_purge(struct drm_device *dev)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+
+ mutex_lock(&vc4->bo_lock);
+ while (!list_empty(&vc4->bo_cache.time_list)) {
+ struct vc4_bo *bo = list_last_entry(&vc4->bo_cache.time_list,
+ struct vc4_bo, unref_head);
+ vc4_bo_remove_from_cache(bo);
+ vc4_bo_destroy(bo);
+ }
+ mutex_unlock(&vc4->bo_lock);
+}
+
+static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev,
+ uint32_t size)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ uint32_t page_index = bo_page_index(size);
+ struct vc4_bo *bo = NULL;
+
+ size = roundup(size, PAGE_SIZE);
+
+ mutex_lock(&vc4->bo_lock);
+ if (page_index >= vc4->bo_cache.size_list_size)
+ goto out;
+
+ if (list_empty(&vc4->bo_cache.size_list[page_index]))
+ goto out;
+
+ bo = list_first_entry(&vc4->bo_cache.size_list[page_index],
+ struct vc4_bo, size_head);
+ vc4_bo_remove_from_cache(bo);
+ kref_init(&bo->base.base.refcount);
+
+out:
+ mutex_unlock(&vc4->bo_lock);
+ return bo;
+}
+
+/**
+ * vc4_gem_create_object - Implementation of driver->gem_create_object.
+ *
+ * This lets the CMA helpers allocate object structs for us, and keep
+ * our BO stats correct.
+ */
+struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ struct vc4_bo *bo;
+
+ bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ if (!bo)
+ return ERR_PTR(-ENOMEM);
+
+ mutex_lock(&vc4->bo_lock);
+ vc4->bo_stats.num_allocated++;
+ vc4->bo_stats.size_allocated += size;
+ mutex_unlock(&vc4->bo_lock);
+
+ return &bo->base.base;
+}
+
+struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size,
+ bool from_cache)
+{
+ size_t size = roundup(unaligned_size, PAGE_SIZE);
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
struct drm_gem_cma_object *cma_obj;
- cma_obj = drm_gem_cma_create(dev, size);
- if (IS_ERR(cma_obj))
+ if (size == 0)
return NULL;
- else
- return to_vc4_bo(&cma_obj->base);
+
+ /* First, try to get a vc4_bo from the kernel BO cache. */
+ if (from_cache) {
+ struct vc4_bo *bo = vc4_bo_get_from_cache(dev, size);
+
+ if (bo)
+ return bo;
+ }
+
+ cma_obj = drm_gem_cma_create(dev, size);
+ if (IS_ERR(cma_obj)) {
+ /*
+ * If we've run out of CMA memory, kill the cache of
+ * CMA allocations we've got laying around and try again.
+ */
+ vc4_bo_cache_purge(dev);
+
+ cma_obj = drm_gem_cma_create(dev, size);
+ if (IS_ERR(cma_obj)) {
+ DRM_ERROR("Failed to allocate from CMA:\n");
+ vc4_bo_stats_dump(vc4);
+ return NULL;
+ }
+ }
+
+ return to_vc4_bo(&cma_obj->base);
}
int vc4_dumb_create(struct drm_file *file_priv,
@@ -41,7 +251,7 @@ int vc4_dumb_create(struct drm_file *file_priv,
if (args->size < args->pitch * args->height)
args->size = args->pitch * args->height;
- bo = vc4_bo_create(dev, roundup(args->size, PAGE_SIZE));
+ bo = vc4_bo_create(dev, args->size, false);
if (!bo)
return -ENOMEM;
@@ -50,3 +260,117 @@ int vc4_dumb_create(struct drm_file *file_priv,
return ret;
}
+
+/* Must be called with bo_lock held. */
+static void vc4_bo_cache_free_old(struct drm_device *dev)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ unsigned long expire_time = jiffies - msecs_to_jiffies(1000);
+
+ while (!list_empty(&vc4->bo_cache.time_list)) {
+ struct vc4_bo *bo = list_last_entry(&vc4->bo_cache.time_list,
+ struct vc4_bo, unref_head);
+ if (time_before(expire_time, bo->free_time)) {
+ mod_timer(&vc4->bo_cache.time_timer,
+ round_jiffies_up(jiffies +
+ msecs_to_jiffies(1000)));
+ return;
+ }
+
+ vc4_bo_remove_from_cache(bo);
+ vc4_bo_destroy(bo);
+ }
+}
+
+/* Called on the last userspace/kernel unreference of the BO. Returns
+ * it to the BO cache if possible, otherwise frees it.
+ *
+ * Note that this is called with the struct_mutex held.
+ */
+void vc4_free_object(struct drm_gem_object *gem_bo)
+{
+ struct drm_device *dev = gem_bo->dev;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ struct vc4_bo *bo = to_vc4_bo(gem_bo);
+ struct list_head *cache_list;
+
+ mutex_lock(&vc4->bo_lock);
+ /* If the object references someone else's memory, we can't cache it.
+ */
+ if (gem_bo->import_attach) {
+ vc4_bo_destroy(bo);
+ goto out;
+ }
+
+ /* Don't cache if it was publicly named. */
+ if (gem_bo->name) {
+ vc4_bo_destroy(bo);
+ goto out;
+ }
+
+ cache_list = vc4_get_cache_list_for_size(dev, gem_bo->size);
+ if (!cache_list) {
+ vc4_bo_destroy(bo);
+ goto out;
+ }
+
+ bo->free_time = jiffies;
+ list_add(&bo->size_head, cache_list);
+ list_add(&bo->unref_head, &vc4->bo_cache.time_list);
+
+ vc4->bo_stats.num_cached++;
+ vc4->bo_stats.size_cached += gem_bo->size;
+
+ vc4_bo_cache_free_old(dev);
+
+out:
+ mutex_unlock(&vc4->bo_lock);
+}
+
+static void vc4_bo_cache_time_work(struct work_struct *work)
+{
+ struct vc4_dev *vc4 =
+ container_of(work, struct vc4_dev, bo_cache.time_work);
+ struct drm_device *dev = vc4->dev;
+
+ mutex_lock(&vc4->bo_lock);
+ vc4_bo_cache_free_old(dev);
+ mutex_unlock(&vc4->bo_lock);
+}
+
+static void vc4_bo_cache_time_timer(unsigned long data)
+{
+ struct drm_device *dev = (struct drm_device *)data;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+
+ schedule_work(&vc4->bo_cache.time_work);
+}
+
+void vc4_bo_cache_init(struct drm_device *dev)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+
+ mutex_init(&vc4->bo_lock);
+
+ INIT_LIST_HEAD(&vc4->bo_cache.time_list);
+
+ INIT_WORK(&vc4->bo_cache.time_work, vc4_bo_cache_time_work);
+ setup_timer(&vc4->bo_cache.time_timer,
+ vc4_bo_cache_time_timer,
+ (unsigned long)dev);
+}
+
+void vc4_bo_cache_destroy(struct drm_device *dev)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+
+ del_timer(&vc4->bo_cache.time_timer);
+ cancel_work_sync(&vc4->bo_cache.time_work);
+
+ vc4_bo_cache_purge(dev);
+
+ if (vc4->bo_stats.num_allocated) {
+ DRM_ERROR("Destroying BO cache while BOs still allocated:\n");
+ vc4_bo_stats_dump(vc4);
+ }
+}
diff --git a/drivers/gpu/drm/vc4/vc4_debugfs.c b/drivers/gpu/drm/vc4/vc4_debugfs.c
index 4297b0a5..6bcf96e 100644
--- a/drivers/gpu/drm/vc4/vc4_debugfs.c
+++ b/drivers/gpu/drm/vc4/vc4_debugfs.c
@@ -16,6 +16,7 @@
#include "vc4_regs.h"
static const struct drm_info_list vc4_debugfs_list[] = {
+ {"bo_stats", vc4_bo_stats_debugfs, 0},
{"hdmi_regs", vc4_hdmi_debugfs_regs, 0},
{"hvs_regs", vc4_hvs_debugfs_regs, 0},
{"crtc0_regs", vc4_crtc_debugfs_regs, 0, (void *)(uintptr_t)0},
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 6e73060..da041fa 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -92,7 +92,8 @@ static struct drm_driver vc4_drm_driver = {
.debugfs_cleanup = vc4_debugfs_cleanup,
#endif
- .gem_free_object = drm_gem_cma_free_object,
+ .gem_create_object = vc4_create_object,
+ .gem_free_object = vc4_free_object,
.gem_vm_ops = &drm_gem_cma_vm_ops,
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
@@ -170,6 +171,8 @@ static int vc4_drm_bind(struct device *dev)
drm_dev_set_unique(drm, dev_name(dev));
+ vc4_bo_cache_init(drm);
+
drm_mode_config_init(drm);
if (ret)
goto unref;
@@ -202,6 +205,7 @@ unbind_all:
component_unbind_all(dev, drm);
unref:
drm_dev_unref(drm);
+ vc4_bo_cache_destroy(drm);
return ret;
}
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index fd8319f..39a1ff5 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -17,6 +17,37 @@ struct vc4_dev {
struct vc4_crtc *crtc[3];
struct drm_fbdev_cma *fbdev;
+
+ /* The kernel-space BO cache. Tracks buffers that have been
+ * unreferenced by all other users (refcounts of 0!) but not
+ * yet freed, so we can do cheap allocations.
+ */
+ struct vc4_bo_cache {
+ /* Array of list heads for entries in the BO cache,
+ * based on number of pages, so we can do O(1) lookups
+ * in the cache when allocating.
+ */
+ struct list_head *size_list;
+ uint32_t size_list_size;
+
+ /* List of all BOs in the cache, ordered by age, so we
+ * can do O(1) lookups when trying to free old
+ * buffers.
+ */
+ struct list_head time_list;
+ struct work_struct time_work;
+ struct timer_list time_timer;
+ } bo_cache;
+
+ struct vc4_bo_stats {
+ u32 num_allocated;
+ u32 size_allocated;
+ u32 num_cached;
+ u32 size_cached;
+ } bo_stats;
+
+ /* Protects bo_cache and the BO stats. */
+ struct mutex bo_lock;
};
static inline struct vc4_dev *
@@ -27,6 +58,17 @@ to_vc4_dev(struct drm_device *dev)
struct vc4_bo {
struct drm_gem_cma_object base;
+
+ /* List entry for the BO's position in either
+ * vc4_exec_info->unref_list or vc4_dev->bo_cache.time_list
+ */
+ struct list_head unref_head;
+
+ /* Time in jiffies when the BO was put in vc4->bo_cache. */
+ unsigned long free_time;
+
+ /* List entry for the BO's position in vc4_dev->bo_cache.size_list */
+ struct list_head size_head;
};
static inline struct vc4_bo *
@@ -104,13 +146,18 @@ to_vc4_encoder(struct drm_encoder *encoder)
#define wait_for(COND, MS) _wait_for(COND, MS, 1)
/* vc4_bo.c */
+struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size);
void vc4_free_object(struct drm_gem_object *gem_obj);
-struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size);
+struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size,
+ bool from_cache);
int vc4_dumb_create(struct drm_file *file_priv,
struct drm_device *dev,
struct drm_mode_create_dumb *args);
struct dma_buf *vc4_prime_export(struct drm_device *dev,
struct drm_gem_object *obj, int flags);
+void vc4_bo_cache_init(struct drm_device *dev);
+void vc4_bo_cache_destroy(struct drm_device *dev);
+int vc4_bo_stats_debugfs(struct seq_file *m, void *arg);
/* vc4_crtc.c */
extern struct platform_driver vc4_crtc_driver;
--
2.6.4
@@ -0,0 +1,204 @@
From d5bc60f6ad05b3c676b057bec662cfafc3ee24dd Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Sun, 18 Jan 2015 09:33:17 +1300
Subject: [PATCH 3/9] drm/vc4: Add create and map BO ioctls.
While there exist dumb APIs for creating and mapping BOs, one of the
rules is that drivers doing 3D acceleration have to provide their own
APIs for buffer allocation (besides, the pitch/height parameters of
the dumb alloc don't really make sense for a lot of 3D allocations).
v2: Use __u32-style types, use "drm.h" instead of <drm/drm.h>.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
drivers/gpu/drm/vc4/vc4_bo.c | 41 ++++++++++++++++++++++++++
drivers/gpu/drm/vc4/vc4_drv.c | 3 ++
drivers/gpu/drm/vc4/vc4_drv.h | 4 +++
include/uapi/drm/Kbuild | 1 +
include/uapi/drm/vc4_drm.h | 68 +++++++++++++++++++++++++++++++++++++++++++
5 files changed, 117 insertions(+)
create mode 100644 include/uapi/drm/vc4_drm.h
diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
index 18faa5b..06cba26 100644
--- a/drivers/gpu/drm/vc4/vc4_bo.c
+++ b/drivers/gpu/drm/vc4/vc4_bo.c
@@ -19,6 +19,7 @@
*/
#include "vc4_drv.h"
+#include "uapi/drm/vc4_drm.h"
static void vc4_bo_stats_dump(struct vc4_dev *vc4)
{
@@ -346,6 +347,46 @@ static void vc4_bo_cache_time_timer(unsigned long data)
schedule_work(&vc4->bo_cache.time_work);
}
+int vc4_create_bo_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv)
+{
+ struct drm_vc4_create_bo *args = data;
+ struct vc4_bo *bo = NULL;
+ int ret;
+
+ /*
+ * We can't allocate from the BO cache, because the BOs don't
+ * get zeroed, and that might leak data between users.
+ */
+ bo = vc4_bo_create(dev, args->size, false);
+ if (!bo)
+ return -ENOMEM;
+
+ ret = drm_gem_handle_create(file_priv, &bo->base.base, &args->handle);
+ drm_gem_object_unreference_unlocked(&bo->base.base);
+
+ return ret;
+}
+
+int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv)
+{
+ struct drm_vc4_mmap_bo *args = data;
+ struct drm_gem_object *gem_obj;
+
+ gem_obj = drm_gem_object_lookup(dev, file_priv, args->handle);
+ if (!gem_obj) {
+ DRM_ERROR("Failed to look up GEM BO %d\n", args->handle);
+ return -EINVAL;
+ }
+
+ /* The mmap offset was set up at BO allocation time. */
+ args->offset = drm_vma_node_offset_addr(&gem_obj->vma_node);
+
+ drm_gem_object_unreference_unlocked(gem_obj);
+ return 0;
+}
+
void vc4_bo_cache_init(struct drm_device *dev)
{
struct vc4_dev *vc4 = to_vc4_dev(dev);
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index da041fa..5fa4688 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -16,6 +16,7 @@
#include <linux/platform_device.h>
#include "drm_fb_cma_helper.h"
+#include "uapi/drm/vc4_drm.h"
#include "vc4_drv.h"
#include "vc4_regs.h"
@@ -73,6 +74,8 @@ static const struct file_operations vc4_drm_fops = {
};
static const struct drm_ioctl_desc vc4_drm_ioctls[] = {
+ DRM_IOCTL_DEF_DRV(VC4_CREATE_BO, vc4_create_bo_ioctl, 0),
+ DRM_IOCTL_DEF_DRV(VC4_MMAP_BO, vc4_mmap_bo_ioctl, 0),
};
static struct drm_driver vc4_drm_driver = {
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 39a1ff5..fddb0a0 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -155,6 +155,10 @@ int vc4_dumb_create(struct drm_file *file_priv,
struct drm_mode_create_dumb *args);
struct dma_buf *vc4_prime_export(struct drm_device *dev,
struct drm_gem_object *obj, int flags);
+int vc4_create_bo_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv);
+int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv);
void vc4_bo_cache_init(struct drm_device *dev);
void vc4_bo_cache_destroy(struct drm_device *dev);
int vc4_bo_stats_debugfs(struct seq_file *m, void *arg);
diff --git a/include/uapi/drm/Kbuild b/include/uapi/drm/Kbuild
index 38d4370..974fcd5 100644
--- a/include/uapi/drm/Kbuild
+++ b/include/uapi/drm/Kbuild
@@ -17,4 +17,5 @@ header-y += tegra_drm.h
header-y += via_drm.h
header-y += vmwgfx_drm.h
header-y += msm_drm.h
+header-y += vc4_drm.h
header-y += virtgpu_drm.h
diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h
new file mode 100644
index 0000000..219d34c
--- /dev/null
+++ b/include/uapi/drm/vc4_drm.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright © 2014-2015 Broadcom
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef _UAPI_VC4_DRM_H_
+#define _UAPI_VC4_DRM_H_
+
+#include "drm.h"
+
+#define DRM_VC4_CREATE_BO 0x03
+#define DRM_VC4_MMAP_BO 0x04
+
+#define DRM_IOCTL_VC4_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_BO, struct drm_vc4_create_bo)
+#define DRM_IOCTL_VC4_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo)
+
+/**
+ * struct drm_vc4_create_bo - ioctl argument for creating VC4 BOs.
+ *
+ * There are currently no values for the flags argument, but it may be
+ * used in a future extension.
+ */
+struct drm_vc4_create_bo {
+ __u32 size;
+ __u32 flags;
+ /** Returned GEM handle for the BO. */
+ __u32 handle;
+ __u32 pad;
+};
+
+/**
+ * struct drm_vc4_mmap_bo - ioctl argument for mapping VC4 BOs.
+ *
+ * This doesn't actually perform an mmap. Instead, it returns the
+ * offset you need to use in an mmap on the DRM device node. This
+ * means that tools like valgrind end up knowing about the mapped
+ * memory.
+ *
+ * There are currently no values for the flags argument, but it may be
+ * used in a future extension.
+ */
+struct drm_vc4_mmap_bo {
+ /** Handle for the object being mapped. */
+ __u32 handle;
+ __u32 flags;
+ /** offset into the drm node to use for subsequent mmap call. */
+ __u64 offset;
+};
+
+#endif /* _UAPI_VC4_DRM_H_ */
--
2.6.4
@@ -0,0 +1,26 @@
From 1fa81589bbac16af6baf153ccc9b3f38fb16a498 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Fri, 23 Oct 2015 14:57:22 +0100
Subject: [PATCH 5/9] drm/vc4: Fix a typo in a V3D debug register.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
drivers/gpu/drm/vc4/vc4_regs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h
index 9e4e904..4e52a0a 100644
--- a/drivers/gpu/drm/vc4/vc4_regs.h
+++ b/drivers/gpu/drm/vc4/vc4_regs.h
@@ -154,7 +154,7 @@
#define V3D_PCTRS14 0x006f4
#define V3D_PCTR15 0x006f8
#define V3D_PCTRS15 0x006fc
-#define V3D_BGE 0x00f00
+#define V3D_DBGE 0x00f00
#define V3D_FDBGO 0x00f04
#define V3D_FDBGB 0x00f08
#define V3D_FDBGR 0x00f0c
--
2.6.4
@@ -0,0 +1,333 @@
From d3f5168a0810005920e7a3d5ba83e249bd9a750c Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Mon, 2 Mar 2015 13:01:12 -0800
Subject: [PATCH 6/9] drm/vc4: Bind and initialize the V3D engine.
This is the component of the GPU that does 3D rendering.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
drivers/gpu/drm/vc4/Makefile | 1 +
drivers/gpu/drm/vc4/vc4_debugfs.c | 2 +
drivers/gpu/drm/vc4/vc4_drv.c | 1 +
drivers/gpu/drm/vc4/vc4_drv.h | 13 +++
drivers/gpu/drm/vc4/vc4_v3d.c | 225 ++++++++++++++++++++++++++++++++++++++
5 files changed, 242 insertions(+)
create mode 100644 drivers/gpu/drm/vc4/vc4_v3d.c
diff --git a/drivers/gpu/drm/vc4/Makefile b/drivers/gpu/drm/vc4/Makefile
index eb776a6..e87a6f2 100644
--- a/drivers/gpu/drm/vc4/Makefile
+++ b/drivers/gpu/drm/vc4/Makefile
@@ -11,6 +11,7 @@ vc4-y := \
vc4_hdmi.o \
vc4_hvs.o \
vc4_plane.o \
+ vc4_v3d.o \
vc4_validate_shaders.o
vc4-$(CONFIG_DEBUG_FS) += vc4_debugfs.o
diff --git a/drivers/gpu/drm/vc4/vc4_debugfs.c b/drivers/gpu/drm/vc4/vc4_debugfs.c
index 6bcf96e..d76ad10 100644
--- a/drivers/gpu/drm/vc4/vc4_debugfs.c
+++ b/drivers/gpu/drm/vc4/vc4_debugfs.c
@@ -22,6 +22,8 @@ static const struct drm_info_list vc4_debugfs_list[] = {
{"crtc0_regs", vc4_crtc_debugfs_regs, 0, (void *)(uintptr_t)0},
{"crtc1_regs", vc4_crtc_debugfs_regs, 0, (void *)(uintptr_t)1},
{"crtc2_regs", vc4_crtc_debugfs_regs, 0, (void *)(uintptr_t)2},
+ {"v3d_ident", vc4_v3d_debugfs_ident, 0},
+ {"v3d_regs", vc4_v3d_debugfs_regs, 0},
};
#define VC4_DEBUGFS_ENTRIES ARRAY_SIZE(vc4_debugfs_list)
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index da4be9c..db58d74 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -236,6 +236,7 @@ static struct platform_driver *const component_drivers[] = {
&vc4_hdmi_driver,
&vc4_crtc_driver,
&vc4_hvs_driver,
+ &vc4_v3d_driver,
};
static int vc4_platform_drm_probe(struct platform_device *pdev)
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index bd77d55..8945463 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -15,6 +15,7 @@ struct vc4_dev {
struct vc4_hdmi *hdmi;
struct vc4_hvs *hvs;
struct vc4_crtc *crtc[3];
+ struct vc4_v3d *v3d;
struct drm_fbdev_cma *fbdev;
@@ -82,6 +83,11 @@ to_vc4_bo(struct drm_gem_object *bo)
return (struct vc4_bo *)bo;
}
+struct vc4_v3d {
+ struct platform_device *pdev;
+ void __iomem *regs;
+};
+
struct vc4_hvs {
struct platform_device *pdev;
void __iomem *regs;
@@ -119,6 +125,8 @@ to_vc4_encoder(struct drm_encoder *encoder)
return container_of(encoder, struct vc4_encoder, base);
}
+#define V3D_READ(offset) readl(vc4->v3d->regs + offset)
+#define V3D_WRITE(offset, val) writel(val, vc4->v3d->regs + offset)
#define HVS_READ(offset) readl(vc4->hvs->regs + offset)
#define HVS_WRITE(offset, val) writel(val, vc4->hvs->regs + offset)
@@ -241,6 +249,11 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev,
u32 vc4_plane_write_dlist(struct drm_plane *plane, u32 __iomem *dlist);
u32 vc4_plane_dlist_size(struct drm_plane_state *state);
+/* vc4_v3d.c */
+extern struct platform_driver vc4_v3d_driver;
+int vc4_v3d_debugfs_ident(struct seq_file *m, void *unused);
+int vc4_v3d_debugfs_regs(struct seq_file *m, void *unused);
+
/* vc4_validate_shader.c */
struct vc4_validated_shader_info *
vc4_validate_shader(struct drm_gem_cma_object *shader_obj);
diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
new file mode 100644
index 0000000..040ad0d
--- /dev/null
+++ b/drivers/gpu/drm/vc4/vc4_v3d.c
@@ -0,0 +1,225 @@
+/*
+ * Copyright (c) 2014 The Linux Foundation. All rights reserved.
+ * Copyright (C) 2013 Red Hat
+ * Author: Rob Clark <robdclark@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "linux/component.h"
+#include "vc4_drv.h"
+#include "vc4_regs.h"
+
+#ifdef CONFIG_DEBUG_FS
+#define REGDEF(reg) { reg, #reg }
+static const struct {
+ uint32_t reg;
+ const char *name;
+} vc4_reg_defs[] = {
+ REGDEF(V3D_IDENT0),
+ REGDEF(V3D_IDENT1),
+ REGDEF(V3D_IDENT2),
+ REGDEF(V3D_SCRATCH),
+ REGDEF(V3D_L2CACTL),
+ REGDEF(V3D_SLCACTL),
+ REGDEF(V3D_INTCTL),
+ REGDEF(V3D_INTENA),
+ REGDEF(V3D_INTDIS),
+ REGDEF(V3D_CT0CS),
+ REGDEF(V3D_CT1CS),
+ REGDEF(V3D_CT0EA),
+ REGDEF(V3D_CT1EA),
+ REGDEF(V3D_CT0CA),
+ REGDEF(V3D_CT1CA),
+ REGDEF(V3D_CT00RA0),
+ REGDEF(V3D_CT01RA0),
+ REGDEF(V3D_CT0LC),
+ REGDEF(V3D_CT1LC),
+ REGDEF(V3D_CT0PC),
+ REGDEF(V3D_CT1PC),
+ REGDEF(V3D_PCS),
+ REGDEF(V3D_BFC),
+ REGDEF(V3D_RFC),
+ REGDEF(V3D_BPCA),
+ REGDEF(V3D_BPCS),
+ REGDEF(V3D_BPOA),
+ REGDEF(V3D_BPOS),
+ REGDEF(V3D_BXCF),
+ REGDEF(V3D_SQRSV0),
+ REGDEF(V3D_SQRSV1),
+ REGDEF(V3D_SQCNTL),
+ REGDEF(V3D_SRQPC),
+ REGDEF(V3D_SRQUA),
+ REGDEF(V3D_SRQUL),
+ REGDEF(V3D_SRQCS),
+ REGDEF(V3D_VPACNTL),
+ REGDEF(V3D_VPMBASE),
+ REGDEF(V3D_PCTRC),
+ REGDEF(V3D_PCTRE),
+ REGDEF(V3D_PCTR0),
+ REGDEF(V3D_PCTRS0),
+ REGDEF(V3D_PCTR1),
+ REGDEF(V3D_PCTRS1),
+ REGDEF(V3D_PCTR2),
+ REGDEF(V3D_PCTRS2),
+ REGDEF(V3D_PCTR3),
+ REGDEF(V3D_PCTRS3),
+ REGDEF(V3D_PCTR4),
+ REGDEF(V3D_PCTRS4),
+ REGDEF(V3D_PCTR5),
+ REGDEF(V3D_PCTRS5),
+ REGDEF(V3D_PCTR6),
+ REGDEF(V3D_PCTRS6),
+ REGDEF(V3D_PCTR7),
+ REGDEF(V3D_PCTRS7),
+ REGDEF(V3D_PCTR8),
+ REGDEF(V3D_PCTRS8),
+ REGDEF(V3D_PCTR9),
+ REGDEF(V3D_PCTRS9),
+ REGDEF(V3D_PCTR10),
+ REGDEF(V3D_PCTRS10),
+ REGDEF(V3D_PCTR11),
+ REGDEF(V3D_PCTRS11),
+ REGDEF(V3D_PCTR12),
+ REGDEF(V3D_PCTRS12),
+ REGDEF(V3D_PCTR13),
+ REGDEF(V3D_PCTRS13),
+ REGDEF(V3D_PCTR14),
+ REGDEF(V3D_PCTRS14),
+ REGDEF(V3D_PCTR15),
+ REGDEF(V3D_PCTRS15),
+ REGDEF(V3D_DBGE),
+ REGDEF(V3D_FDBGO),
+ REGDEF(V3D_FDBGB),
+ REGDEF(V3D_FDBGR),
+ REGDEF(V3D_FDBGS),
+ REGDEF(V3D_ERRSTAT),
+};
+
+int vc4_v3d_debugfs_regs(struct seq_file *m, void *unused)
+{
+ struct drm_info_node *node = (struct drm_info_node *)m->private;
+ struct drm_device *dev = node->minor->dev;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(vc4_reg_defs); i++) {
+ seq_printf(m, "%s (0x%04x): 0x%08x\n",
+ vc4_reg_defs[i].name, vc4_reg_defs[i].reg,
+ V3D_READ(vc4_reg_defs[i].reg));
+ }
+
+ return 0;
+}
+
+int vc4_v3d_debugfs_ident(struct seq_file *m, void *unused)
+{
+ struct drm_info_node *node = (struct drm_info_node *)m->private;
+ struct drm_device *dev = node->minor->dev;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ uint32_t ident1 = V3D_READ(V3D_IDENT1);
+ uint32_t nslc = VC4_GET_FIELD(ident1, V3D_IDENT1_NSLC);
+ uint32_t tups = VC4_GET_FIELD(ident1, V3D_IDENT1_TUPS);
+ uint32_t qups = VC4_GET_FIELD(ident1, V3D_IDENT1_QUPS);
+
+ seq_printf(m, "Revision: %d\n",
+ VC4_GET_FIELD(ident1, V3D_IDENT1_REV));
+ seq_printf(m, "Slices: %d\n", nslc);
+ seq_printf(m, "TMUs: %d\n", nslc * tups);
+ seq_printf(m, "QPUs: %d\n", nslc * qups);
+ seq_printf(m, "Semaphores: %d\n",
+ VC4_GET_FIELD(ident1, V3D_IDENT1_NSEM));
+
+ return 0;
+}
+#endif /* CONFIG_DEBUG_FS */
+
+static void vc4_v3d_init_hw(struct drm_device *dev)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+
+ /* Take all the memory that would have been reserved for user
+ * QPU programs, since we don't have an interface for running
+ * them, anyway.
+ */
+ V3D_WRITE(V3D_VPMBASE, 0);
+}
+
+static int vc4_v3d_bind(struct device *dev, struct device *master, void *data)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ struct drm_device *drm = dev_get_drvdata(master);
+ struct vc4_dev *vc4 = to_vc4_dev(drm);
+ struct vc4_v3d *v3d = NULL;
+
+ v3d = devm_kzalloc(&pdev->dev, sizeof(*v3d), GFP_KERNEL);
+ if (!v3d)
+ return -ENOMEM;
+
+ v3d->pdev = pdev;
+
+ v3d->regs = vc4_ioremap_regs(pdev, 0);
+ if (IS_ERR(v3d->regs))
+ return PTR_ERR(v3d->regs);
+
+ vc4->v3d = v3d;
+
+ if (V3D_READ(V3D_IDENT0) != V3D_EXPECTED_IDENT0) {
+ DRM_ERROR("V3D_IDENT0 read 0x%08x instead of 0x%08x\n",
+ V3D_READ(V3D_IDENT0), V3D_EXPECTED_IDENT0);
+ return -EINVAL;
+ }
+
+ vc4_v3d_init_hw(drm);
+
+ return 0;
+}
+
+static void vc4_v3d_unbind(struct device *dev, struct device *master,
+ void *data)
+{
+ struct drm_device *drm = dev_get_drvdata(master);
+ struct vc4_dev *vc4 = to_vc4_dev(drm);
+
+ vc4->v3d = NULL;
+}
+
+static const struct component_ops vc4_v3d_ops = {
+ .bind = vc4_v3d_bind,
+ .unbind = vc4_v3d_unbind,
+};
+
+static int vc4_v3d_dev_probe(struct platform_device *pdev)
+{
+ return component_add(&pdev->dev, &vc4_v3d_ops);
+}
+
+static int vc4_v3d_dev_remove(struct platform_device *pdev)
+{
+ component_del(&pdev->dev, &vc4_v3d_ops);
+ return 0;
+}
+
+static const struct of_device_id vc4_v3d_dt_match[] = {
+ { .compatible = "brcm,vc4-v3d" },
+ {}
+};
+
+struct platform_driver vc4_v3d_driver = {
+ .probe = vc4_v3d_dev_probe,
+ .remove = vc4_v3d_dev_remove,
+ .driver = {
+ .name = "vc4_v3d",
+ .of_match_table = vc4_v3d_dt_match,
+ },
+};
--
2.6.4
@@ -0,0 +1,511 @@
From b501bacc6060fd62654b756469cc3091eb53de3a Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Mon, 30 Nov 2015 12:34:01 -0800
Subject: [PATCH 8/9] drm/vc4: Add support for async pageflips.
An async pageflip stores the modeset to be done and executes it once
the BOs are ready to be displayed. This gets us about 3x performance
in full screen rendering with pageflipping.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
drivers/gpu/drm/vc4/vc4_crtc.c | 99 +++++++++++++++++++++++++-
drivers/gpu/drm/vc4/vc4_drv.h | 16 +++++
drivers/gpu/drm/vc4/vc4_gem.c | 40 +++++++++++
drivers/gpu/drm/vc4/vc4_kms.c | 149 +++++++++++++++++++++++++++++++++++++++-
drivers/gpu/drm/vc4/vc4_plane.c | 40 +++++++++++
5 files changed, 342 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
index 7a9f476..a319332 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -35,6 +35,7 @@
#include "drm_atomic_helper.h"
#include "drm_crtc_helper.h"
#include "linux/clk.h"
+#include "drm_fb_cma_helper.h"
#include "linux/component.h"
#include "linux/of_device.h"
#include "vc4_drv.h"
@@ -475,10 +476,106 @@ static irqreturn_t vc4_crtc_irq_handler(int irq, void *data)
return ret;
}
+struct vc4_async_flip_state {
+ struct drm_crtc *crtc;
+ struct drm_framebuffer *fb;
+ struct drm_pending_vblank_event *event;
+
+ struct vc4_seqno_cb cb;
+};
+
+/* Called when the V3D execution for the BO being flipped to is done, so that
+ * we can actually update the plane's address to point to it.
+ */
+static void
+vc4_async_page_flip_complete(struct vc4_seqno_cb *cb)
+{
+ struct vc4_async_flip_state *flip_state =
+ container_of(cb, struct vc4_async_flip_state, cb);
+ struct drm_crtc *crtc = flip_state->crtc;
+ struct drm_device *dev = crtc->dev;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ struct drm_plane *plane = crtc->primary;
+
+ vc4_plane_async_set_fb(plane, flip_state->fb);
+ if (flip_state->event) {
+ unsigned long flags;
+
+ spin_lock_irqsave(&dev->event_lock, flags);
+ drm_crtc_send_vblank_event(crtc, flip_state->event);
+ spin_unlock_irqrestore(&dev->event_lock, flags);
+ }
+
+ drm_framebuffer_unreference(flip_state->fb);
+ kfree(flip_state);
+
+ up(&vc4->async_modeset);
+}
+
+/* Implements async (non-vblank-synced) page flips.
+ *
+ * The page flip ioctl needs to return immediately, so we grab the
+ * modeset semaphore on the pipe, and queue the address update for
+ * when V3D is done with the BO being flipped to.
+ */
+static int vc4_async_page_flip(struct drm_crtc *crtc,
+ struct drm_framebuffer *fb,
+ struct drm_pending_vblank_event *event,
+ uint32_t flags)
+{
+ struct drm_device *dev = crtc->dev;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ struct drm_plane *plane = crtc->primary;
+ int ret = 0;
+ struct vc4_async_flip_state *flip_state;
+ struct drm_gem_cma_object *cma_bo = drm_fb_cma_get_gem_obj(fb, 0);
+ struct vc4_bo *bo = to_vc4_bo(&cma_bo->base);
+
+ flip_state = kzalloc(sizeof(*flip_state), GFP_KERNEL);
+ if (!flip_state)
+ return -ENOMEM;
+
+ drm_framebuffer_reference(fb);
+ flip_state->fb = fb;
+ flip_state->crtc = crtc;
+ flip_state->event = event;
+
+ /* Make sure all other async modesetes have landed. */
+ ret = down_interruptible(&vc4->async_modeset);
+ if (ret) {
+ kfree(flip_state);
+ return ret;
+ }
+
+ /* Immediately update the plane's legacy fb pointer, so that later
+ * modeset prep sees the state that will be present when the semaphore
+ * is released.
+ */
+ drm_atomic_set_fb_for_plane(plane->state, fb);
+ plane->fb = fb;
+
+ vc4_queue_seqno_cb(dev, &flip_state->cb, bo->seqno,
+ vc4_async_page_flip_complete);
+
+ /* Driver takes ownership of state on successful async commit. */
+ return 0;
+}
+
+static int vc4_page_flip(struct drm_crtc *crtc,
+ struct drm_framebuffer *fb,
+ struct drm_pending_vblank_event *event,
+ uint32_t flags)
+{
+ if (flags & DRM_MODE_PAGE_FLIP_ASYNC)
+ return vc4_async_page_flip(crtc, fb, event, flags);
+ else
+ return drm_atomic_helper_page_flip(crtc, fb, event, flags);
+}
+
static const struct drm_crtc_funcs vc4_crtc_funcs = {
.set_config = drm_atomic_helper_set_config,
.destroy = vc4_crtc_destroy,
- .page_flip = drm_atomic_helper_page_flip,
+ .page_flip = vc4_page_flip,
.set_property = NULL,
.cursor_set = NULL, /* handled by drm_mode_cursor_universal */
.cursor_move = NULL, /* handled by drm_mode_cursor_universal */
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 0bc8c57..f9927d8 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -76,6 +76,11 @@ struct vc4_dev {
wait_queue_head_t job_wait_queue;
struct work_struct job_done_work;
+ /* List of struct vc4_seqno_cb for callbacks to be made from a
+ * workqueue when the given seqno is passed.
+ */
+ struct list_head seqno_cb_list;
+
/* The binner overflow memory that's currently set up in
* BPOA/BPOS registers. When overflow occurs and a new one is
* allocated, the previous one will be moved to
@@ -128,6 +133,12 @@ to_vc4_bo(struct drm_gem_object *bo)
return (struct vc4_bo *)bo;
}
+struct vc4_seqno_cb {
+ struct work_struct work;
+ uint64_t seqno;
+ void (*func)(struct vc4_seqno_cb *cb);
+};
+
struct vc4_v3d {
struct platform_device *pdev;
void __iomem *regs;
@@ -384,6 +395,9 @@ void vc4_submit_next_job(struct drm_device *dev);
int vc4_wait_for_seqno(struct drm_device *dev, uint64_t seqno,
uint64_t timeout_ns, bool interruptible);
void vc4_job_handle_completed(struct vc4_dev *vc4);
+int vc4_queue_seqno_cb(struct drm_device *dev,
+ struct vc4_seqno_cb *cb, uint64_t seqno,
+ void (*func)(struct vc4_seqno_cb *cb));
/* vc4_hdmi.c */
extern struct platform_driver vc4_hdmi_driver;
@@ -409,6 +423,8 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev,
enum drm_plane_type type);
u32 vc4_plane_write_dlist(struct drm_plane *plane, u32 __iomem *dlist);
u32 vc4_plane_dlist_size(struct drm_plane_state *state);
+void vc4_plane_async_set_fb(struct drm_plane *plane,
+ struct drm_framebuffer *fb);
/* vc4_v3d.c */
extern struct platform_driver vc4_v3d_driver;
diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c
index 936dddf..5fb0556 100644
--- a/drivers/gpu/drm/vc4/vc4_gem.c
+++ b/drivers/gpu/drm/vc4/vc4_gem.c
@@ -461,6 +461,7 @@ void
vc4_job_handle_completed(struct vc4_dev *vc4)
{
unsigned long irqflags;
+ struct vc4_seqno_cb *cb, *cb_temp;
spin_lock_irqsave(&vc4->job_lock, irqflags);
while (!list_empty(&vc4->job_done_list)) {
@@ -473,7 +474,45 @@ vc4_job_handle_completed(struct vc4_dev *vc4)
vc4_complete_exec(vc4->dev, exec);
spin_lock_irqsave(&vc4->job_lock, irqflags);
}
+
+ list_for_each_entry_safe(cb, cb_temp, &vc4->seqno_cb_list, work.entry) {
+ if (cb->seqno <= vc4->finished_seqno) {
+ list_del_init(&cb->work.entry);
+ schedule_work(&cb->work);
+ }
+ }
+
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+}
+
+static void vc4_seqno_cb_work(struct work_struct *work)
+{
+ struct vc4_seqno_cb *cb = container_of(work, struct vc4_seqno_cb, work);
+
+ cb->func(cb);
+}
+
+int vc4_queue_seqno_cb(struct drm_device *dev,
+ struct vc4_seqno_cb *cb, uint64_t seqno,
+ void (*func)(struct vc4_seqno_cb *cb))
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ int ret = 0;
+ unsigned long irqflags;
+
+ cb->func = func;
+ INIT_WORK(&cb->work, vc4_seqno_cb_work);
+
+ spin_lock_irqsave(&vc4->job_lock, irqflags);
+ if (seqno > vc4->finished_seqno) {
+ cb->seqno = seqno;
+ list_add_tail(&cb->work.entry, &vc4->seqno_cb_list);
+ } else {
+ schedule_work(&cb->work);
+ }
spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+
+ return ret;
}
/* Scheduled when any job has been completed, this walks the list of
@@ -610,6 +649,7 @@ vc4_gem_init(struct drm_device *dev)
INIT_LIST_HEAD(&vc4->job_list);
INIT_LIST_HEAD(&vc4->job_done_list);
+ INIT_LIST_HEAD(&vc4->seqno_cb_list);
spin_lock_init(&vc4->job_lock);
INIT_WORK(&vc4->hangcheck.reset_work, vc4_reset_work);
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index 2e5597d..f95f2df 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -15,6 +15,7 @@
*/
#include "drm_crtc.h"
+#include "drm_atomic.h"
#include "drm_atomic_helper.h"
#include "drm_crtc_helper.h"
#include "drm_plane_helper.h"
@@ -29,10 +30,152 @@ static void vc4_output_poll_changed(struct drm_device *dev)
drm_fbdev_cma_hotplug_event(vc4->fbdev);
}
+struct vc4_commit {
+ struct drm_device *dev;
+ struct drm_atomic_state *state;
+ struct vc4_seqno_cb cb;
+};
+
+static void
+vc4_atomic_complete_commit(struct vc4_commit *c)
+{
+ struct drm_atomic_state *state = c->state;
+ struct drm_device *dev = state->dev;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+
+ drm_atomic_helper_commit_modeset_disables(dev, state);
+
+ drm_atomic_helper_commit_planes(dev, state, false);
+
+ drm_atomic_helper_commit_modeset_enables(dev, state);
+
+ drm_atomic_helper_wait_for_vblanks(dev, state);
+
+ drm_atomic_helper_cleanup_planes(dev, state);
+
+ drm_atomic_state_free(state);
+
+ up(&vc4->async_modeset);
+
+ kfree(c);
+}
+
+static void
+vc4_atomic_complete_commit_seqno_cb(struct vc4_seqno_cb *cb)
+{
+ struct vc4_commit *c = container_of(cb, struct vc4_commit, cb);
+
+ vc4_atomic_complete_commit(c);
+}
+
+static struct vc4_commit *commit_init(struct drm_atomic_state *state)
+{
+ struct vc4_commit *c = kzalloc(sizeof(*c), GFP_KERNEL);
+
+ if (!c)
+ return NULL;
+ c->dev = state->dev;
+ c->state = state;
+
+ return c;
+}
+
+/**
+ * vc4_atomic_commit - commit validated state object
+ * @dev: DRM device
+ * @state: the driver state object
+ * @async: asynchronous commit
+ *
+ * This function commits a with drm_atomic_helper_check() pre-validated state
+ * object. This can still fail when e.g. the framebuffer reservation fails. For
+ * now this doesn't implement asynchronous commits.
+ *
+ * RETURNS
+ * Zero for success or -errno.
+ */
+static int vc4_atomic_commit(struct drm_device *dev,
+ struct drm_atomic_state *state,
+ bool async)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ int ret;
+ int i;
+ uint64_t wait_seqno = 0;
+ struct vc4_commit *c;
+
+ c = commit_init(state);
+ if (!c)
+ return -ENOMEM;
+
+ /* Make sure that any outstanding modesets have finished. */
+ ret = down_interruptible(&vc4->async_modeset);
+ if (ret) {
+ kfree(c);
+ return ret;
+ }
+
+ ret = drm_atomic_helper_prepare_planes(dev, state);
+ if (ret) {
+ kfree(c);
+ up(&vc4->async_modeset);
+ return ret;
+ }
+
+ for (i = 0; i < dev->mode_config.num_total_plane; i++) {
+ struct drm_plane *plane = state->planes[i];
+ struct drm_plane_state *new_state = state->plane_states[i];
+
+ if (!plane)
+ continue;
+
+ if ((plane->state->fb != new_state->fb) && new_state->fb) {
+ struct drm_gem_cma_object *cma_bo =
+ drm_fb_cma_get_gem_obj(new_state->fb, 0);
+ struct vc4_bo *bo = to_vc4_bo(&cma_bo->base);
+
+ wait_seqno = max(bo->seqno, wait_seqno);
+ }
+ }
+
+ /*
+ * This is the point of no return - everything below never fails except
+ * when the hw goes bonghits. Which means we can commit the new state on
+ * the software side now.
+ */
+
+ drm_atomic_helper_swap_state(dev, state);
+
+ /*
+ * Everything below can be run asynchronously without the need to grab
+ * any modeset locks at all under one condition: It must be guaranteed
+ * that the asynchronous work has either been cancelled (if the driver
+ * supports it, which at least requires that the framebuffers get
+ * cleaned up with drm_atomic_helper_cleanup_planes()) or completed
+ * before the new state gets committed on the software side with
+ * drm_atomic_helper_swap_state().
+ *
+ * This scheme allows new atomic state updates to be prepared and
+ * checked in parallel to the asynchronous completion of the previous
+ * update. Which is important since compositors need to figure out the
+ * composition of the next frame right after having submitted the
+ * current layout.
+ */
+
+ if (async) {
+ vc4_queue_seqno_cb(dev, &c->cb, wait_seqno,
+ vc4_atomic_complete_commit_seqno_cb);
+ } else {
+ vc4_wait_for_seqno(dev, wait_seqno, ~0ull, false);
+ vc4_atomic_complete_commit(c);
+ }
+
+ return 0;
+}
+
static const struct drm_mode_config_funcs vc4_mode_funcs = {
.output_poll_changed = vc4_output_poll_changed,
.atomic_check = drm_atomic_helper_check,
- .atomic_commit = drm_atomic_helper_commit,
+ .atomic_commit = vc4_atomic_commit,
.fb_create = drm_fb_cma_create,
};
@@ -41,6 +184,8 @@ int vc4_kms_load(struct drm_device *dev)
struct vc4_dev *vc4 = to_vc4_dev(dev);
int ret;
+ sema_init(&vc4->async_modeset, 1);
+
ret = drm_vblank_init(dev, dev->mode_config.num_crtc);
if (ret < 0) {
dev_err(dev->dev, "failed to initialize vblank\n");
@@ -51,6 +196,8 @@ int vc4_kms_load(struct drm_device *dev)
dev->mode_config.max_height = 2048;
dev->mode_config.funcs = &vc4_mode_funcs;
dev->mode_config.preferred_depth = 24;
+ dev->mode_config.async_page_flip = true;
+
dev->vblank_disable_allowed = true;
drm_mode_config_reset(dev);
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index cdd8b10..db32c373 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -29,6 +29,14 @@ struct vc4_plane_state {
u32 *dlist;
u32 dlist_size; /* Number of dwords in allocated for the display list */
u32 dlist_count; /* Number of used dwords in the display list. */
+
+ /* Offset in the dlist to pointer word 0. */
+ u32 pw0_offset;
+
+ /* Offset where the plane's dlist was last stored in the
+ hardware at vc4_crtc_atomic_flush() time.
+ */
+ u32 *hw_dlist;
};
static inline struct vc4_plane_state *
@@ -197,6 +205,8 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
/* Position Word 3: Context. Written by the HVS. */
vc4_dlist_write(vc4_state, 0xc0c0c0c0);
+ vc4_state->pw0_offset = vc4_state->dlist_count;
+
/* Pointer Word 0: RGB / Y Pointer */
vc4_dlist_write(vc4_state, bo->paddr + offset);
@@ -248,6 +258,8 @@ u32 vc4_plane_write_dlist(struct drm_plane *plane, u32 __iomem *dlist)
struct vc4_plane_state *vc4_state = to_vc4_plane_state(plane->state);
int i;
+ vc4_state->hw_dlist = dlist;
+
/* Can't memcpy_toio() because it needs to be 32-bit writes. */
for (i = 0; i < vc4_state->dlist_count; i++)
writel(vc4_state->dlist[i], &dlist[i]);
@@ -262,6 +274,34 @@ u32 vc4_plane_dlist_size(struct drm_plane_state *state)
return vc4_state->dlist_count;
}
+/* Updates the plane to immediately (well, once the FIFO needs
+ * refilling) scan out from at a new framebuffer.
+ */
+void vc4_plane_async_set_fb(struct drm_plane *plane, struct drm_framebuffer *fb)
+{
+ struct vc4_plane_state *vc4_state = to_vc4_plane_state(plane->state);
+ struct drm_gem_cma_object *bo = drm_fb_cma_get_gem_obj(fb, 0);
+ uint32_t addr;
+
+ /* We're skipping the address adjustment for negative origin,
+ * because this is only called on the primary plane.
+ */
+ WARN_ON_ONCE(plane->state->crtc_x < 0 || plane->state->crtc_y < 0);
+ addr = bo->paddr + fb->offsets[0];
+
+ /* Write the new address into the hardware immediately. The
+ * scanout will start from this address as soon as the FIFO
+ * needs to refill with pixels.
+ */
+ writel(addr, &vc4_state->hw_dlist[vc4_state->pw0_offset]);
+
+ /* Also update the CPU-side dlist copy, so that any later
+ * atomic updates that don't do a new modeset on our plane
+ * also use our updated address.
+ */
+ vc4_state->dlist[vc4_state->pw0_offset] = addr;
+}
+
static const struct drm_plane_helper_funcs vc4_plane_helper_funcs = {
.prepare_fb = NULL,
.cleanup_fb = NULL,
--
2.6.4
@@ -0,0 +1,333 @@
From 214613656b5179f0daab6e0a080814b5100d45f0 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Fri, 30 Oct 2015 10:09:02 -0700
Subject: [PATCH 9/9] drm/vc4: Add an interface for capturing the GPU state
after a hang.
This can be parsed with vc4-gpu-tools tools for trying to figure out
what was going on.
v2: Use __u32-style types.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
drivers/gpu/drm/vc4/vc4_drv.c | 2 +
drivers/gpu/drm/vc4/vc4_drv.h | 4 +
drivers/gpu/drm/vc4/vc4_gem.c | 185 ++++++++++++++++++++++++++++++++++++++++++
include/uapi/drm/vc4_drm.h | 45 ++++++++++
4 files changed, 236 insertions(+)
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 2cfee59..97226b6 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -80,6 +80,8 @@ static const struct drm_ioctl_desc vc4_drm_ioctls[] = {
DRM_IOCTL_DEF_DRV(VC4_CREATE_BO, vc4_create_bo_ioctl, 0),
DRM_IOCTL_DEF_DRV(VC4_MMAP_BO, vc4_mmap_bo_ioctl, 0),
DRM_IOCTL_DEF_DRV(VC4_CREATE_SHADER_BO, vc4_create_shader_bo_ioctl, 0),
+ DRM_IOCTL_DEF_DRV(VC4_GET_HANG_STATE, vc4_get_hang_state_ioctl,
+ DRM_ROOT_ONLY),
};
static struct drm_driver vc4_drm_driver = {
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index f9927d8..080865e 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -19,6 +19,8 @@ struct vc4_dev {
struct drm_fbdev_cma *fbdev;
+ struct vc4_hang_state *hang_state;
+
/* The kernel-space BO cache. Tracks buffers that have been
* unreferenced by all other users (refcounts of 0!) but not
* yet freed, so we can do cheap allocations.
@@ -361,6 +363,8 @@ int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
+int vc4_get_hang_state_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv);
int vc4_mmap(struct file *filp, struct vm_area_struct *vma);
int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
void *vc4_prime_vmap(struct drm_gem_object *obj);
diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c
index 5fb0556..39f29e7 100644
--- a/drivers/gpu/drm/vc4/vc4_gem.c
+++ b/drivers/gpu/drm/vc4/vc4_gem.c
@@ -40,6 +40,186 @@ vc4_queue_hangcheck(struct drm_device *dev)
round_jiffies_up(jiffies + msecs_to_jiffies(100)));
}
+struct vc4_hang_state {
+ struct drm_vc4_get_hang_state user_state;
+
+ u32 bo_count;
+ struct drm_gem_object **bo;
+};
+
+static void
+vc4_free_hang_state(struct drm_device *dev, struct vc4_hang_state *state)
+{
+ unsigned int i;
+
+ mutex_lock(&dev->struct_mutex);
+ for (i = 0; i < state->user_state.bo_count; i++)
+ drm_gem_object_unreference(state->bo[i]);
+ mutex_unlock(&dev->struct_mutex);
+
+ kfree(state);
+}
+
+int
+vc4_get_hang_state_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv)
+{
+ struct drm_vc4_get_hang_state *get_state = data;
+ struct drm_vc4_get_hang_state_bo *bo_state;
+ struct vc4_hang_state *kernel_state;
+ struct drm_vc4_get_hang_state *state;
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ unsigned long irqflags;
+ u32 i;
+ int ret;
+
+ spin_lock_irqsave(&vc4->job_lock, irqflags);
+ kernel_state = vc4->hang_state;
+ if (!kernel_state) {
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ return -ENOENT;
+ }
+ state = &kernel_state->user_state;
+
+ /* If the user's array isn't big enough, just return the
+ * required array size.
+ */
+ if (get_state->bo_count < state->bo_count) {
+ get_state->bo_count = state->bo_count;
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ return 0;
+ }
+
+ vc4->hang_state = NULL;
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+
+ /* Save the user's BO pointer, so we don't stomp it with the memcpy. */
+ state->bo = get_state->bo;
+ memcpy(get_state, state, sizeof(*state));
+
+ bo_state = kcalloc(state->bo_count, sizeof(*bo_state), GFP_KERNEL);
+ if (!bo_state) {
+ ret = -ENOMEM;
+ goto err_free;
+ }
+
+ for (i = 0; i < state->bo_count; i++) {
+ struct vc4_bo *vc4_bo = to_vc4_bo(kernel_state->bo[i]);
+ u32 handle;
+
+ ret = drm_gem_handle_create(file_priv, kernel_state->bo[i],
+ &handle);
+
+ if (ret) {
+ state->bo_count = i - 1;
+ goto err;
+ }
+ bo_state[i].handle = handle;
+ bo_state[i].paddr = vc4_bo->base.paddr;
+ bo_state[i].size = vc4_bo->base.base.size;
+ }
+
+ ret = copy_to_user((void __user *)(uintptr_t)get_state->bo,
+ bo_state,
+ state->bo_count * sizeof(*bo_state));
+ kfree(bo_state);
+
+err_free:
+
+ vc4_free_hang_state(dev, kernel_state);
+
+err:
+ return ret;
+}
+
+static void
+vc4_save_hang_state(struct drm_device *dev)
+{
+ struct vc4_dev *vc4 = to_vc4_dev(dev);
+ struct drm_vc4_get_hang_state *state;
+ struct vc4_hang_state *kernel_state;
+ struct vc4_exec_info *exec;
+ struct vc4_bo *bo;
+ unsigned long irqflags;
+ unsigned int i, unref_list_count;
+
+ kernel_state = kcalloc(1, sizeof(*state), GFP_KERNEL);
+ if (!kernel_state)
+ return;
+
+ state = &kernel_state->user_state;
+
+ spin_lock_irqsave(&vc4->job_lock, irqflags);
+ exec = vc4_first_job(vc4);
+ if (!exec) {
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ return;
+ }
+
+ unref_list_count = 0;
+ list_for_each_entry(bo, &exec->unref_list, unref_head)
+ unref_list_count++;
+
+ state->bo_count = exec->bo_count + unref_list_count;
+ kernel_state->bo = kcalloc(state->bo_count, sizeof(*kernel_state->bo),
+ GFP_ATOMIC);
+ if (!kernel_state->bo) {
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ return;
+ }
+
+ for (i = 0; i < exec->bo_count; i++) {
+ drm_gem_object_reference(&exec->bo[i]->base);
+ kernel_state->bo[i] = &exec->bo[i]->base;
+ }
+
+ list_for_each_entry(bo, &exec->unref_list, unref_head) {
+ drm_gem_object_reference(&bo->base.base);
+ kernel_state->bo[i] = &bo->base.base;
+ i++;
+ }
+
+ state->start_bin = exec->ct0ca;
+ state->start_render = exec->ct1ca;
+
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+
+ state->ct0ca = V3D_READ(V3D_CTNCA(0));
+ state->ct0ea = V3D_READ(V3D_CTNEA(0));
+
+ state->ct1ca = V3D_READ(V3D_CTNCA(1));
+ state->ct1ea = V3D_READ(V3D_CTNEA(1));
+
+ state->ct0cs = V3D_READ(V3D_CTNCS(0));
+ state->ct1cs = V3D_READ(V3D_CTNCS(1));
+
+ state->ct0ra0 = V3D_READ(V3D_CT00RA0);
+ state->ct1ra0 = V3D_READ(V3D_CT01RA0);
+
+ state->bpca = V3D_READ(V3D_BPCA);
+ state->bpcs = V3D_READ(V3D_BPCS);
+ state->bpoa = V3D_READ(V3D_BPOA);
+ state->bpos = V3D_READ(V3D_BPOS);
+
+ state->vpmbase = V3D_READ(V3D_VPMBASE);
+
+ state->dbge = V3D_READ(V3D_DBGE);
+ state->fdbgo = V3D_READ(V3D_FDBGO);
+ state->fdbgb = V3D_READ(V3D_FDBGB);
+ state->fdbgr = V3D_READ(V3D_FDBGR);
+ state->fdbgs = V3D_READ(V3D_FDBGS);
+ state->errstat = V3D_READ(V3D_ERRSTAT);
+
+ spin_lock_irqsave(&vc4->job_lock, irqflags);
+ if (vc4->hang_state) {
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ vc4_free_hang_state(dev, kernel_state);
+ } else {
+ vc4->hang_state = kernel_state;
+ spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ }
+}
+
static void
vc4_reset(struct drm_device *dev)
{
@@ -64,6 +244,8 @@ vc4_reset_work(struct work_struct *work)
struct vc4_dev *vc4 =
container_of(work, struct vc4_dev, hangcheck.reset_work);
+ vc4_save_hang_state(vc4->dev);
+
vc4_reset(vc4->dev);
}
@@ -679,4 +861,7 @@ vc4_gem_destroy(struct drm_device *dev)
}
vc4_bo_cache_destroy(dev);
+
+ if (vc4->hang_state)
+ vc4_free_hang_state(dev, vc4->hang_state);
}
diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h
index fe4161b..eeb37e3 100644
--- a/include/uapi/drm/vc4_drm.h
+++ b/include/uapi/drm/vc4_drm.h
@@ -32,6 +32,7 @@
#define DRM_VC4_CREATE_BO 0x03
#define DRM_VC4_MMAP_BO 0x04
#define DRM_VC4_CREATE_SHADER_BO 0x05
+#define DRM_VC4_GET_HANG_STATE 0x06
#define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
#define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
@@ -39,6 +40,7 @@
#define DRM_IOCTL_VC4_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_BO, struct drm_vc4_create_bo)
#define DRM_IOCTL_VC4_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo)
#define DRM_IOCTL_VC4_CREATE_SHADER_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_SHADER_BO, struct drm_vc4_create_shader_bo)
+#define DRM_IOCTL_VC4_GET_HANG_STATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_HANG_STATE, struct drm_vc4_get_hang_state)
struct drm_vc4_submit_rcl_surface {
__u32 hindex; /* Handle index, or ~0 if not present. */
@@ -231,4 +233,47 @@ struct drm_vc4_create_shader_bo {
__u32 pad;
};
+struct drm_vc4_get_hang_state_bo {
+ __u32 handle;
+ __u32 paddr;
+ __u32 size;
+ __u32 pad;
+};
+
+/**
+ * struct drm_vc4_hang_state - ioctl argument for collecting state
+ * from a GPU hang for analysis.
+*/
+struct drm_vc4_get_hang_state {
+ /** Pointer to array of struct drm_vc4_get_hang_state_bo. */
+ __u64 bo;
+ /**
+ * On input, the size of the bo array. Output is the number
+ * of bos to be returned.
+ */
+ __u32 bo_count;
+
+ __u32 start_bin, start_render;
+
+ __u32 ct0ca, ct0ea;
+ __u32 ct1ca, ct1ea;
+ __u32 ct0cs, ct1cs;
+ __u32 ct0ra0, ct1ra0;
+
+ __u32 bpca, bpcs;
+ __u32 bpoa, bpos;
+
+ __u32 vpmbase;
+
+ __u32 dbge;
+ __u32 fdbgo;
+ __u32 fdbgb;
+ __u32 fdbgr;
+ __u32 fdbgs;
+ __u32 errstat;
+
+ /* Pad that we may save more registers into in the future. */
+ __u32 pad[16];
+};
+
#endif /* _UAPI_VC4_DRM_H_ */
--
2.6.4
@@ -0,0 +1,35 @@
From: Chris Wilson <chris@chris-wilson.co.uk>
Subject: [PATCH] drm/i915: Fix RPS pointer passed from wait_ioctl to i915_wait_request
Date: Wed, 2 Dec 2015 09:13:46 +0000
In commit 2e1b873072dfe3bbcc158a9c21acde1ab0d36c55 [v4.2]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon Apr 27 13:41:22 2015 +0100
drm/i915: Convert RPS tracking to a intel_rps_client struct
we converted the __i915_wait_request() to take a new intel_rps_client
struct (rather than having to pass fake drm_i915_file_private structs).
However, due to use of passing a void pointer, I didn't spot one
callsite in wait-ioctl was passing the wrong pointer.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@vger.kernel.org
---
drivers/gpu/drm/i915/i915_gem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index f5aef48b93db..cd8c4024af92 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3045,7 +3045,7 @@ i915_gem_wait_ioctl(struct drm_device *d
if (ret == 0)
ret = __i915_wait_request(req[i], reset_counter, true,
args->timeout_ns > 0 ? &args->timeout_ns : NULL,
- file->driver_priv);
+ to_rps_client(file));
i915_gem_request_unreference__unlocked(req[i]);
}
return ret;
@@ -0,0 +1,34 @@
From 85a21eafbc2218ffba59b1dda2ce9d7148bf43d2 Mon Sep 17 00:00:00 2001
From: Thierry Reding <treding@nvidia.com>
Date: Mon, 4 Jan 2016 18:19:12 +0100
Subject: [PATCH] drm/radeon: Drop unnecessary unsigned int < 0 check
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Unsigned integers can never be negative, so drop this check.
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/radeon/radeon_kms.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 4fab44e..414953c 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -759,7 +759,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe)
u32 count;
struct radeon_device *rdev = dev->dev_private;
- if (pipe < 0 || pipe >= rdev->num_crtc) {
+ if (pipe >= rdev->num_crtc) {
DRM_ERROR("Invalid crtc %u\n", pipe);
return -EINVAL;
}
--
2.3.10
@@ -0,0 +1,106 @@
From 4e926d2db58244fca9845c78a5d6f873ac73795b Mon Sep 17 00:00:00 2001
From: Thierry Reding <treding@nvidia.com>
Date: Wed, 16 Dec 2015 15:31:47 +0100
Subject: [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API")
updated the prototype of this function but not the implementation. This
wasn't noticed even through compile tests because the prototype is part
of the source file that uses it and hence the compiler won't know the
prototype when it compiles the implementation.
The right thing would've been to move the prototype to a header that's
included in radeon_kms.c so that the implementation signature could be
checked against it, but the closest thing would've been radeon_drv.h
and including that results in a lot of build errors, so we'll leave it
as is for now.
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index d290a8a..4fab44e 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -748,19 +748,19 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
* radeon_get_vblank_counter_kms - get frame count
*
* @dev: drm dev pointer
- * @crtc: crtc to get the frame count from
+ * @pipe: crtc to get the frame count from
*
* Gets the frame count on the requested crtc (all asics).
* Returns frame count on success, -EINVAL on failure.
*/
-u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
+u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe)
{
int vpos, hpos, stat;
u32 count;
struct radeon_device *rdev = dev->dev_private;
- if (crtc < 0 || crtc >= rdev->num_crtc) {
- DRM_ERROR("Invalid crtc %d\n", crtc);
+ if (pipe < 0 || pipe >= rdev->num_crtc) {
+ DRM_ERROR("Invalid crtc %u\n", pipe);
return -EINVAL;
}
@@ -772,29 +772,29 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
* and start of vsync, so vpos >= 0 means to bump the hw frame counter
* result by 1 to give the proper appearance to caller.
*/
- if (rdev->mode_info.crtcs[crtc]) {
+ if (rdev->mode_info.crtcs[pipe]) {
/* Repeat readout if needed to provide stable result if
* we cross start of vsync during the queries.
*/
do {
- count = radeon_get_vblank_counter(rdev, crtc);
+ count = radeon_get_vblank_counter(rdev, pipe);
/* Ask radeon_get_crtc_scanoutpos to return vpos as
* distance to start of vblank, instead of regular
* vertical scanout pos.
*/
stat = radeon_get_crtc_scanoutpos(
- dev, crtc, GET_DISTANCE_TO_VBLANKSTART,
+ dev, pipe, GET_DISTANCE_TO_VBLANKSTART,
&vpos, &hpos, NULL, NULL,
- &rdev->mode_info.crtcs[crtc]->base.hwmode);
- } while (count != radeon_get_vblank_counter(rdev, crtc));
+ &rdev->mode_info.crtcs[pipe]->base.hwmode);
+ } while (count != radeon_get_vblank_counter(rdev, pipe));
if (((stat & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE)) !=
(DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE))) {
DRM_DEBUG_VBL("Query failed! stat %d\n", stat);
}
else {
- DRM_DEBUG_VBL("crtc %d: dist from vblank start %d\n",
- crtc, vpos);
+ DRM_DEBUG_VBL("crtc %u: dist from vblank start %d\n",
+ pipe, vpos);
/* Bump counter if we are at >= leading edge of vblank,
* but before vsync where vpos would turn negative and
@@ -806,7 +806,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
}
else {
/* Fallback to use value as is. */
- count = radeon_get_vblank_counter(rdev, crtc);
+ count = radeon_get_vblank_counter(rdev, pipe);
DRM_DEBUG_VBL("NULL mode info! Returned count may be wrong.\n");
}
--
2.3.10
@@ -1,115 +0,0 @@
From: Hans de Goede <hdegoede@redhat.com>
Subject: [PATCH] alps: Only the Dell Latitude D420/430/620/630 have separate stick button bits
Date: Wed, 21 Oct 2015 10:16:18 +0200
commit 92bac83dd79e ("Input: alps - non interleaved V2 dualpoint has
separate stick button bits") assumes that all alps v2 non-interleaved
dual point setups have the separate stick button bits.
Later we limited this to Dell laptops only because of reports that this
broke things on non Dell laptops. Now it turns out that this breaks things
on the Dell Latitude D600 too. So it seems that only the Dell Latitude
D420/430/620/630, which all share the same touchpad / stick combo,
have these separate bits.
This patch limits the checking of the separate bits to only these models
fixing regressions with other models.
Reported-and-tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: stable@vger.kernel.org
Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/input/mouse/alps.c | 48 ++++++++++++++++++++++++++++++++++++++++------
1 file changed, 42 insertions(+), 6 deletions(-)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 4d24686..41e6cb5 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -100,7 +100,7 @@ static const struct alps_nibble_commands alps_v6_nibble_commands[] = {
#define ALPS_FOUR_BUTTONS 0x40 /* 4 direction button present */
#define ALPS_PS2_INTERLEAVED 0x80 /* 3-byte PS/2 packet interleaved with
6-byte ALPS packet */
-#define ALPS_DELL 0x100 /* device is a Dell laptop */
+#define ALPS_STICK_BITS 0x100 /* separate stick button bits */
#define ALPS_BUTTONPAD 0x200 /* device is a clickpad */
static const struct alps_model_info alps_model_data[] = {
@@ -159,6 +159,43 @@ static const struct alps_protocol_info alps_v8_protocol_data = {
ALPS_PROTO_V8, 0x18, 0x18, 0
};
+/*
+ * Some v2 models report the stick buttons in separate bits
+ */
+static const struct dmi_system_id alps_dmi_has_separate_stick_buttons[] = {
+#if defined(CONFIG_DMI) && defined(CONFIG_X86)
+ {
+ /* Extrapolated from other entries */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D420"),
+ },
+ },
+ {
+ /* Reported-by: Hans de Bruin <jmdebruin@xmsnet.nl> */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D430"),
+ },
+ },
+ {
+ /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D620"),
+ },
+ },
+ {
+ /* Extrapolated from other entries */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D630"),
+ },
+ },
+#endif
+ { }
+};
+
static void alps_set_abs_params_st(struct alps_data *priv,
struct input_dev *dev1);
static void alps_set_abs_params_semi_mt(struct alps_data *priv,
@@ -253,9 +290,8 @@ static void alps_process_packet_v1_v2(struct psmouse *psmouse)
return;
}
- /* Dell non interleaved V2 dualpoint has separate stick button bits */
- if (priv->proto_version == ALPS_PROTO_V2 &&
- priv->flags == (ALPS_DELL | ALPS_PASS | ALPS_DUALPOINT)) {
+ /* Some models have separate stick button bits */
+ if (priv->flags & ALPS_STICK_BITS) {
left |= packet[0] & 1;
right |= packet[0] & 2;
middle |= packet[0] & 4;
@@ -2552,8 +2588,6 @@ static int alps_set_protocol(struct psmouse *psmouse,
priv->byte0 = protocol->byte0;
priv->mask0 = protocol->mask0;
priv->flags = protocol->flags;
- if (dmi_name_in_vendors("Dell"))
- priv->flags |= ALPS_DELL;
priv->x_max = 2000;
priv->y_max = 1400;
@@ -2568,6 +2602,8 @@ static int alps_set_protocol(struct psmouse *psmouse,
priv->set_abs_params = alps_set_abs_params_st;
priv->x_max = 1023;
priv->y_max = 767;
+ if (dmi_check_system(alps_dmi_has_separate_stick_buttons))
+ priv->flags |= ALPS_STICK_BITS;
break;
case ALPS_PROTO_V3:
--
2.5.0
@@ -0,0 +1,39 @@
From 4ee34ea3a12396f35b26d90a094c75db95080baa Mon Sep 17 00:00:00 2001
From: Harvey Hunt <harvey.hunt@imgtec.com>
Date: Wed, 24 Feb 2016 15:16:43 +0000
Subject: [PATCH] libata: Align ata_device's id on a cacheline
The id buffer in ata_device is a DMA target, but it isn't explicitly
cacheline aligned. Due to this, adjacent fields can be overwritten with
stale data from memory on non coherent architectures. As a result, the
kernel is sometimes unable to communicate with an ATA device.
Fix this by ensuring that the id buffer is cacheline aligned.
This issue is similar to that fixed by Commit 84bda12af31f
("libata: align ap->sector_buf").
Signed-off-by: Harvey Hunt <harvey.hunt@imgtec.com>
Cc: linux-kernel@vger.kernel.org
Cc: <stable@vger.kernel.org> # 2.6.18
Signed-off-by: Tejun Heo <tj@kernel.org>
---
include/linux/libata.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/libata.h b/include/linux/libata.h
index bec2abb..2c4ebef 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -720,7 +720,7 @@ struct ata_device {
union {
u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
u32 gscr[SATA_PMP_GSCR_DWORDS]; /* PMP GSCR block */
- };
+ } ____cacheline_aligned;
/* DEVSLP Timing Variables from Identify Device Data Log */
u8 devslp_timing[ATA_LOG_DEVSLP_SIZE];
--
2.7.2
@@ -0,0 +1,98 @@
From 287e6611ab1eac76c2c5ebf6e345e04c80ca9c61 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@arndb.de>
Date: Thu, 11 Feb 2016 14:16:27 +0100
Subject: [PATCH] libata: fix HDIO_GET_32BIT ioctl
As reported by Soohoon Lee, the HDIO_GET_32BIT ioctl does not
work correctly in compat mode with libata.
I have investigated the issue further and found multiple problems
that all appeared with the same commit that originally introduced
HDIO_GET_32BIT handling in libata back in linux-2.6.8 and presumably
also linux-2.4, as the code uses "copy_to_user(arg, &val, 1)" to copy
a 'long' variable containing either 0 or 1 to user space.
The problems with this are:
* On big-endian machines, this will always write a zero because it
stores the wrong byte into user space.
* In compat mode, the upper three bytes of the variable are updated
by the compat_hdio_ioctl() function, but they now contain
uninitialized stack data.
* The hdparm tool calling this ioctl uses a 'static long' variable
to store the result. This means at least the upper bytes are
initialized to zero, but calling another ioctl like HDIO_GET_MULTCOUNT
would fill them with data that remains stale when the low byte
is overwritten. Fortunately libata doesn't implement any of the
affected ioctl commands, so this would only happen when we query
both an IDE and an ATA device in the same command such as
"hdparm -N -c /dev/hda /dev/sda"
* The libata code for unknown reasons started using ATA_IOC_GET_IO32
and ATA_IOC_SET_IO32 as aliases for HDIO_GET_32BIT and HDIO_SET_32BIT,
while the ioctl commands that were added later use the normal
HDIO_* names. This is harmless but rather confusing.
This addresses all four issues by changing the code to use put_user()
on an 'unsigned long' variable in HDIO_GET_32BIT, like the IDE subsystem
does, and by clarifying the names of the ioctl commands.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reported-by: Soohoon Lee <Soohoon.Lee@f5.com>
Tested-by: Soohoon Lee <Soohoon.Lee@f5.com>
Cc: stable@vger.kernel.org
Signed-off-by: Tejun Heo <tj@kernel.org>
---
drivers/ata/libata-scsi.c | 11 +++++------
include/linux/ata.h | 4 ++--
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 7e959f9..e417e1a 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -675,19 +675,18 @@ static int ata_ioc32(struct ata_port *ap)
int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev,
int cmd, void __user *arg)
{
- int val = -EINVAL, rc = -EINVAL;
+ unsigned long val;
+ int rc = -EINVAL;
unsigned long flags;
switch (cmd) {
- case ATA_IOC_GET_IO32:
+ case HDIO_GET_32BIT:
spin_lock_irqsave(ap->lock, flags);
val = ata_ioc32(ap);
spin_unlock_irqrestore(ap->lock, flags);
- if (copy_to_user(arg, &val, 1))
- return -EFAULT;
- return 0;
+ return put_user(val, (unsigned long __user *)arg);
- case ATA_IOC_SET_IO32:
+ case HDIO_SET_32BIT:
val = (unsigned long) arg;
rc = 0;
spin_lock_irqsave(ap->lock, flags);
diff --git a/include/linux/ata.h b/include/linux/ata.h
index d2992bf..c1a2f34 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -487,8 +487,8 @@ enum ata_tf_protocols {
};
enum ata_ioctls {
- ATA_IOC_GET_IO32 = 0x309,
- ATA_IOC_SET_IO32 = 0x324,
+ ATA_IOC_GET_IO32 = 0x309, /* HDIO_GET_32BIT */
+ ATA_IOC_SET_IO32 = 0x324, /* HDIO_SET_32BIT */
};
/* core structures */
--
2.7.2
@@ -0,0 +1,10 @@
--- linux-4.4/net/ipv4/netfilter/ipt_IFWLOG.c~ 2016-01-24 13:19:13.233713998 +0100
+++ linux-4.4/net/ipv4/netfilter/ipt_IFWLOG.c 2016-01-24 20:49:10.145823623 +0100
@@ -74,7 +74,6 @@
return;
}
-nlmsg_failure:
kfree_skb(skb);
PRINTR(KERN_WARNING "IFWLOG: Error sending netlink packet\n");
}
@@ -1,32 +0,0 @@
From b5a48134f8af08f5243328f8a0b05fc5ae7cf343 Mon Sep 17 00:00:00 2001
From: Johannes Berg <johannes.berg@intel.com>
Date: Tue, 22 Sep 2015 10:47:27 +0200
Subject: [PATCH] iwlwifi: fix firmware filename for 3160
The MODULE_FIRMWARE() for 3160 should be using the 7260 version as
it's done in the device configuration struct instead of referencing
IWL3160_UCODE_API_OK which doesn't even exist.
Cc: <stable@vger.kernel.org> [3.8+]
Reported-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-7000.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-7000.c b/drivers/net/wireless/iwlwifi/iwl-7000.c
index 6951aba..3fb327d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-7000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-7000.c
@@ -348,6 +348,6 @@ const struct iwl_cfg iwl7265d_n_cfg = {
};
MODULE_FIRMWARE(IWL7260_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
-MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(IWL3160_UCODE_API_OK));
+MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
MODULE_FIRMWARE(IWL7265_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
MODULE_FIRMWARE(IWL7265D_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
--
2.6.2
@@ -1,148 +0,0 @@
From: Larry Finger <Larry.Finger@lwfinger.net>
Subject: [PATCH] rtlwifi: rtl8821ae: Fix system lockups on boot
Date: Fri, 2 Oct 2015 11:44:30 -0500
In commit 1277fa2ab2f9, the code that cleared all interrupt enable
bits before setting them was removed for all PCI drivers. This fixed an
issue that caused TX to be blocked for 3-5 seconds. On some RTL8821AE units,
this change causes soft lockups to occur on boot. For that reason, the portion
of the earlier commit that applied to rtl8821ae is reverted. Kernels 4.1 and
newer are affected.
See http://marc.info/?l=linux-wireless&m=144373370103285&w=2 and
https://bugzilla.opensuse.org/show_bug.cgi?id=944978 for two cases where
this regression affected user systems. Note that this bug does not appear on
any of the developer's setups. For those users whose systems are affected
by the TX blockage, but do not lock up on boot, a module parameter is added
to disable the interrupt clear
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org> [V4.1+]
---
Kalle,
If possible, please send this patch upstream for inclusion in kernel 4.3.
As noted, the bug affects kernels 4.1 and newer.
This patch applies to wireless-drivers-next, and assumes that the patch that
moved all the Realtek drivers into drivers/net/wireless/realtek has NOT been
applied.
Thanks,
Larry
---
drivers/net/wireless/rtlwifi/pci.h | 2 ++
drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 17 +++++++++++++++++
drivers/net/wireless/rtlwifi/rtl8821ae/sw.c | 5 +++++
drivers/net/wireless/rtlwifi/wifi.h | 3 +++
4 files changed, 27 insertions(+)
diff --git a/drivers/net/wireless/rtlwifi/pci.h b/drivers/net/wireless/rtlwifi/pci.h
index d4567d1..5da6703 100644
--- a/drivers/net/wireless/rtlwifi/pci.h
+++ b/drivers/net/wireless/rtlwifi/pci.h
@@ -247,6 +247,8 @@ struct rtl_pci {
/* MSI support */
bool msi_support;
bool using_msi;
+ /* interrupt clear before set */
+ bool int_clear;
};
struct mp_adapter {
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
index b7f18e21..6e9418e 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
@@ -2253,11 +2253,28 @@ void rtl8821ae_set_qos(struct ieee80211_hw *hw, int aci)
}
}
+static void rtl8821ae_clear_interrupt(struct ieee80211_hw *hw)
+{
+ struct rtl_priv *rtlpriv = rtl_priv(hw);
+ u32 tmp = rtl_read_dword(rtlpriv, REG_HISR);
+
+ rtl_write_dword(rtlpriv, REG_HISR, tmp);
+
+ tmp = rtl_read_dword(rtlpriv, REG_HISRE);
+ rtl_write_dword(rtlpriv, REG_HISRE, tmp);
+
+ tmp = rtl_read_dword(rtlpriv, REG_HSISR);
+ rtl_write_dword(rtlpriv, REG_HSISR, tmp);
+}
+
void rtl8821ae_enable_interrupt(struct ieee80211_hw *hw)
{
struct rtl_priv *rtlpriv = rtl_priv(hw);
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
+ if (!rtlpci->int_clear)
+ rtl8821ae_clear_interrupt(hw);/*clear it here first*/
+
rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF);
rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF);
rtlpci->irq_enabled = true;
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c b/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c
index a4988121..8ee141a 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c
@@ -96,6 +96,7 @@ int rtl8821ae_init_sw_vars(struct ieee80211_hw *hw)
rtl8821ae_bt_reg_init(hw);
rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support;
+ rtlpci->int_clear = rtlpriv->cfg->mod_params->int_clear;
rtlpriv->btcoexist.btc_ops = rtl_btc_get_ops_pointer();
rtlpriv->dm.dm_initialgain_enable = 1;
@@ -167,6 +168,7 @@ int rtl8821ae_init_sw_vars(struct ieee80211_hw *hw)
rtlpriv->psc.swctrl_lps = rtlpriv->cfg->mod_params->swctrl_lps;
rtlpriv->psc.fwctrl_lps = rtlpriv->cfg->mod_params->fwctrl_lps;
rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support;
+ rtlpci->msi_support = rtlpriv->cfg->mod_params->int_clear;
if (rtlpriv->cfg->mod_params->disable_watchdog)
pr_info("watchdog disabled\n");
rtlpriv->psc.reg_fwctrl_lps = 3;
@@ -308,6 +310,7 @@ static struct rtl_mod_params rtl8821ae_mod_params = {
.swctrl_lps = false,
.fwctrl_lps = true,
.msi_support = true,
+ .int_clear = true,
.debug = DBG_EMERG,
.disable_watchdog = 0,
};
@@ -437,6 +440,7 @@ module_param_named(fwlps, rtl8821ae_mod_params.fwctrl_lps, bool, 0444);
module_param_named(msi, rtl8821ae_mod_params.msi_support, bool, 0444);
module_param_named(disable_watchdog, rtl8821ae_mod_params.disable_watchdog,
bool, 0444);
+module_param_named(int_clear, rtl8821ae_mod_params.int_clear, bool, 0444);
MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n");
MODULE_PARM_DESC(ips, "Set to 0 to not use link power save (default 1)\n");
MODULE_PARM_DESC(swlps, "Set to 1 to use SW control power save (default 0)\n");
@@ -444,6 +448,7 @@ MODULE_PARM_DESC(fwlps, "Set to 1 to use FW control power save (default 1)\n");
MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 1)\n");
MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)");
MODULE_PARM_DESC(disable_watchdog, "Set to 1 to disable the watchdog (default 0)\n");
+MODULE_PARM_DESC(int_clear, "Set to 1 to disable interrupt clear before set (default 0)\n");
static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume);
diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
index b90ca61..4544752 100644
--- a/drivers/net/wireless/rtlwifi/wifi.h
+++ b/drivers/net/wireless/rtlwifi/wifi.h
@@ -2249,6 +2249,9 @@ struct rtl_mod_params {
/* default 0: 1 means disable */
bool disable_watchdog;
+
+ /* default 0: 1 means do not disable interrupts */
+ bool int_clear;
};
struct rtl_hal_usbint_cfg {
--
2.1.4
@@ -1,74 +0,0 @@
SCSI: Fix NULL pointer dereference in RTPM of block layer
The routines in scsi_pm.c assume that if a runtime-PM callback is
invoked for a SCSI device, it can only mean that the device's driver
has asked the block layer to handle the runtime power management (by
calling blk_pm_runtime_init(), which among other things sets q->dev).
However, this assumption turns out to be wrong for things like the ses
driver. Normally ses devices are not allowed to do runtime PM, but
userspace can override this setting. If this happens, the kernel gets
a NULL pointer dereference when blk_post_runtime_resume() tries to use
the uninitialized q->dev pointer.
This patch fixes the problem by checking q->dev in block layer before
handle runtime PM. Since ses doesn't define any PM callbacks and call
blk_pm_runtime_init(), the crash won't occur.
This fixes Bugzilla #101371.
https://bugzilla.kernel.org/show_bug.cgi?id=101371
Signed-off-by: Ken Xue <Ken.Xue@amd.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable@vger.kernel.org
---
block/blk-core.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/block/blk-core.c b/block/blk-core.c
index 60912e9..a07ab18 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -3280,6 +3280,9 @@ int blk_pre_runtime_suspend(struct request_queue *q)
{
int ret = 0;
+ if (!q->dev)
+ return ret;
+
spin_lock_irq(q->queue_lock);
if (q->nr_pending) {
ret = -EBUSY;
@@ -3307,6 +3310,9 @@ EXPORT_SYMBOL(blk_pre_runtime_suspend);
*/
void blk_post_runtime_suspend(struct request_queue *q, int err)
{
+ if (!q->dev)
+ return;
+
spin_lock_irq(q->queue_lock);
if (!err) {
q->rpm_status = RPM_SUSPENDED;
@@ -3331,6 +3337,9 @@ EXPORT_SYMBOL(blk_post_runtime_suspend);
*/
void blk_pre_runtime_resume(struct request_queue *q)
{
+ if (!q->dev)
+ return;
+
spin_lock_irq(q->queue_lock);
q->rpm_status = RPM_RESUMING;
spin_unlock_irq(q->queue_lock);
@@ -3353,6 +3362,9 @@ EXPORT_SYMBOL(blk_pre_runtime_resume);
*/
void blk_post_runtime_resume(struct request_queue *q, int err)
{
+ if (!q->dev)
+ return;
+
spin_lock_irq(q->queue_lock);
if (!err) {
q->rpm_status = RPM_ACTIVE;
--
1.9.1
@@ -1,64 +0,0 @@
Revert "SCSI: Fix NULL pointer dereference in runtime PM"
This reverts commit 49718f0fb8c9 ("SCSI: Fix NULL pointer dereference in
runtime PM")
The old commit may lead to a issue that blk_{pre|post}_runtime_suspend and
blk_{pre|post}_runtime_resume can not be called in pairs.
Take sr device as example, when sr device goes to runtime suspend,
blk_{pre|post}_runtime_suspend will be called since sr device defined
pm->runtime_suspend. But blk_{pre|post}_runtime_resume will not be called
since sr device doesn't have pm->runtime_resume. Then sr device can not
resume correctly anymore.
Signed-off-by: Ken Xue <Ken.Xue@amd.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable@vger.kernel.org
---
drivers/scsi/scsi_pm.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index e4b7998..459abe1 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -219,13 +219,13 @@ static int sdev_runtime_suspend(struct device *dev)
struct scsi_device *sdev = to_scsi_device(dev);
int err = 0;
- if (pm && pm->runtime_suspend) {
- err = blk_pre_runtime_suspend(sdev->request_queue);
- if (err)
- return err;
+ err = blk_pre_runtime_suspend(sdev->request_queue);
+ if (err)
+ return err;
+ if (pm && pm->runtime_suspend)
err = pm->runtime_suspend(dev);
- blk_post_runtime_suspend(sdev->request_queue, err);
- }
+ blk_post_runtime_suspend(sdev->request_queue, err);
+
return err;
}
@@ -248,11 +248,11 @@ static int sdev_runtime_resume(struct device *dev)
const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
int err = 0;
- if (pm && pm->runtime_resume) {
- blk_pre_runtime_resume(sdev->request_queue);
+ blk_pre_runtime_resume(sdev->request_queue);
+ if (pm && pm->runtime_resume)
err = pm->runtime_resume(dev);
- blk_post_runtime_resume(sdev->request_queue, err);
- }
+ blk_post_runtime_resume(sdev->request_queue, err);
+
return err;
}
--
1.9.1
+87 -26
View File
@@ -14,9 +14,27 @@
###
### Stable Queue
###
stable-mac80211-fix-hwflags-debugfs-file-format.patch
stable-ath9k-declare-required-extra-tx-headroom.patch
stable-mmc-core-fix-init_card-in-52mhz.patch
stable-use-d_seq-to-get-coherency-between-d_inode-and-d_flags.patch
stable-drivers-sh-restore-legacy-clock-domain-on-superh-platforms.patch
stable-btrfs-fix-deadlock-running-delayed-iputs-at-transaction-commit-time.patch
stable-btrfs-fix-no_space-in-write-and-rm-loop.patch
stable-btrfs-async-thread-fix-a-use-after-free-error-for-trace.patch
stable-drm-amdgpu-mask-out-wc-from-bo-on-unsupported-arches.patch
stable-block-initialize-max_dev_sectors-to-0.patch
stable-pci-keystone-fix-msi-code-that-retrieves-struct-pcie_port-pointer.patch
stable-parisc-fix-ptrace-syscall-number-and-return-value-modification.patch
stable-mips-kvm-fix-ioctl-error-handling.patch
stable-kvm-x86-update-tsc-multiplier-on-change.patch
stable-fbcon-set-a-default-value-to-blink-interval.patch
stable-cifs-fix-out-of-bounds-access-in-lease-parsing.patch
stable-cifs-fix-smb2-interim-response-processing-for-read-requests.patch
stable-fix-cifs_uniqueid_to_ino_t-function-for-s390x.patch
stable-vfio-fix-ioctl-error-handling.patch
stable-kvm-x86-fix-root-cause-for-missed-hardware-breakpoints.patch
stable-arm-arm64-kvm-fix-ioctl-error-handling.patch
stable-iommu-amd-apply-workaround-for-ats-write-permission-check.patch
stable-iommu-amd-fix-boot-warning-when-device-00-00.0-is-not-iommu-covered.patch
stable-iommu-vt-d-use-bus_notify_removed_device-in-hotplug-path.patch
###
### Arch x86
@@ -41,8 +59,8 @@ x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch
# slows down boot
Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
# EFI
x86-efi-Fix-multiple-GOP-device-support.patch
# breaks nvidia304
Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch
###
### Core
@@ -77,6 +95,9 @@ acpi-CLEVO-M360S-disable_acpi_irq.patch
# Clevo M720SR freezes with C3
acpi-processor-M720SR-limit-to-C2.patch
# backlight fixes
ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch
###
### Block
###
@@ -119,20 +140,27 @@ ata-prefer-ata-drivers-over-ide-drivers-when-both-are-built.patch
# Nice SSD speedup
block-Make-CFQ-default-to-IOPS-mode-on-SSDs.patch
# properly fix null pointer deref introduced in 4.1.7
scsi-Revert-SCSI-Fix-NULL-pointer-dereference-in-runtime-PM.patch
scsi-Fix-NULL-pointer-dereference-in-RTPM-of-block-layer.patch
# ahci ids
ahci-add-new-Intel-device-IDs.patch
ata-Adding-Intel-Lewisburg-device-IDs-for-SATA.patch
# fix unwanted automounting of partitions
ata-ahci-don-t-mark-HotPlugCapable-Ports-as-external.patch
# libata fixes
libata-Align-ata_device-s-id-on-a-cacheline.patch
libata-fix-HDIO_GET_32BIT-ioctl.patch
###
### File-system
###
# aufs from: http://aufs.sourceforge.net/ (mga#8314)
fs-aufs4.patch
fs-aufs4-modular.patch
fs-aufs-4.4.patch
fs-aufs-4.4-modular.patch
# btrfs memleak
fs-btrfs-fix-possible-leak-in-btrfs_ioctl_balance.patch
# ovl fixes
fs-ovl-move-super-block-magic-number-to-magic.h.patch
###
### FireWire
@@ -167,6 +195,32 @@ gpu-drm-mach64-linux-3.14-buildfix.patch
gpu-drm-mach64-3.17-buildfix.patch
gpu-drm-mach64-3.18-buildfix.patch
# drm fixes
gpu-drm-i915-Fix-RPS-pointer-passed-from-wait_ioctl-to-i915_wait_request.patch
# etnaviv / vivante gpu
gpu-drm-0001-devicetree-add-vendor-prefix-for-Vivante-Corporation.patch
gpu-drm-0002-drm-etnaviv-add-devicetree-bindings.patch
gpu-drm-0003-drm-etnaviv-add-initial-etnaviv-DRM-driver.patch
gpu-drm-0004-MAINTAINERS-add-maintainer-and-reviewers-for-the-etn.patch
gpu-drm-0005-drm-etnaviv-unlock-on-error-in-etnaviv_gem_get_iova.patch
gpu-drm-0006-drm-etnaviv-fix-workaround-for-GC500.patch
# vc4 3d accel support
gpu-drm-0101-drm-Create-a-driver-hook-for-allocating-GEM-object-s.patch
gpu-drm-0102-drm-vc4-Add-a-BO-cache.patch
gpu-drm-0103-drm-vc4-Add-create-and-map-BO-ioctls.patch
gpu-drm-0104-drm-vc4-Add-an-API-for-creating-GPU-shaders-in-GEM-B.patch
gpu-drm-0105-drm-vc4-Fix-a-typo-in-a-V3D-debug-register.patch
gpu-drm-0106-drm-vc4-Bind-and-initialize-the-V3D-engine.patch
gpu-drm-0107-drm-vc4-Add-support-for-drawing-3D-frames.patch
gpu-drm-0108-drm-vc4-Add-support-for-async-pageflips.patch
gpu-drm-0109-drm-vc4-Add-an-interface-for-capturing-the-GPU-state.patch
# radeon breakage fixes
gpu-drm-radeon-Update-radeon_get_vblank_counter_kms.patch
gpu-drm-radeon-Drop-unnecessary-unsigned-int-0-check.patch
###
### Hardware Monitoring
###
@@ -177,9 +231,6 @@ gpu-drm-mach64-3.18-buildfix.patch
input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch
# fix alps breakage
input-alps-Only-the-Dell-Latitude-D420_430_620_630-have-separate-stick-button-bits.patch
###
### idle
###
@@ -214,18 +265,13 @@ net-netfilter-IFWLOG-2.6.35-buildfix.patch
net-netfilter-IFWLOG-2.6.37-buildfix.patch
net-ipv4-netfilter-ipt_IFWLOG-3.6-buildfix.patch
net-netfilter-IFWLOG-3.7-buildfix.patch
net-netfilter-IFWLOG-remove-unused-label.patch
# netfilter psd support
net-netfilter-psd.patch
net-netfilter-psd-mdv.patch
net-netfilter-psd-2.6.35-buildfix.patch
# wireless lockup
net-wireless-rtlwifi-rtl8821ae-Fix-system-lockups-on-boot.patch
# iwlwifi borked fw reference
net-wireless-iwlwifi-fix-firmware-filename-for-3160.patch
###
### Platform drivers
###
@@ -261,8 +307,8 @@ include-kbuild-export-pci_ids.patch
###
###
### Thunderbolt
thunderbolt-Allow-loading-of-module-on-recent-Apple-.patch
###
###
###
### USB
@@ -332,9 +378,6 @@ video-mageia-logo.patch
# add rtl8723bs support (mga#15874)
3rd-rtl8723bs.patch
3rd-rtl8723bs-buildfix.patch
3rd-rtl8723bs-updates.patch
3rd-rtl8723bs-4.2-buildfix.patch
###
### Security
@@ -352,6 +395,20 @@ video-mageia-logo.patch
### ARM
###
# RPi2 support
arm-0001-dt-bindings-Add-root-properties-for-Raspberry-Pi-2.patch
arm-0002-ARM-bcm2835-Add-a-compat-string-for-bcm2836-machine-.patch
arm-0003-ARM-bcm2835-Add-Kconfig-support-for-bcm2836.patch
arm-0011-ARM-bcm2835-Define-two-new-packets-from-the-latest-f.patch
arm-0012-dt-bindings-add-rpi-power-domain-driver-bindings.patch
arm-0013-ARM-bcm2835-add-rpi-power-domain-driver.patch
arm-0021-ARM-bcm2835-Split-the-DT-for-peripherals-from-the-DT.patch
arm-0022-ARM-bcm2835-Move-the-CPU-peripheral-include-out-of-c.patch
arm-0023-ARM-bcm2835-Add-devicetree-for-bcm2836-and-Raspberry.patch
arm-0024-ARM-bcm2835-Add-the-auxiliary-clocks-to-the-device-t.patch
arm-0031-ARM-bcm2835-enable-all-bcm2835-relevant-in-defconfig.patch
arm-0032-ARM-bcm2835-enable-auxiliary-spi-driver-in-defconfig.patch
###
### IA64
###
@@ -359,3 +416,7 @@ video-mageia-logo.patch
###
### Tools
###
###
### UAPI
###
@@ -0,0 +1,51 @@
From 4cad67fca3fc952d6f2ed9e799621f07666a560f Mon Sep 17 00:00:00 2001
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Sun, 28 Feb 2016 17:32:07 +0200
Subject: arm/arm64: KVM: Fix ioctl error handling
From: Michael S. Tsirkin <mst@redhat.com>
commit 4cad67fca3fc952d6f2ed9e799621f07666a560f upstream.
Calling return copy_to_user(...) in an ioctl will not
do the right thing if there's a pagefault:
copy_to_user returns the number of bytes not copied
in this case.
Fix up kvm to do
return copy_to_user(...)) ? -EFAULT : 0;
everywhere.
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/kvm/guest.c | 2 +-
arch/arm64/kvm/guest.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/arch/arm/kvm/guest.c
+++ b/arch/arm/kvm/guest.c
@@ -155,7 +155,7 @@ static int get_timer_reg(struct kvm_vcpu
u64 val;
val = kvm_arm_timer_get_reg(vcpu, reg->id);
- return copy_to_user(uaddr, &val, KVM_REG_SIZE(reg->id));
+ return copy_to_user(uaddr, &val, KVM_REG_SIZE(reg->id)) ? -EFAULT : 0;
}
static unsigned long num_core_regs(void)
--- a/arch/arm64/kvm/guest.c
+++ b/arch/arm64/kvm/guest.c
@@ -186,7 +186,7 @@ static int get_timer_reg(struct kvm_vcpu
u64 val;
val = kvm_arm_timer_get_reg(vcpu, reg->id);
- return copy_to_user(uaddr, &val, KVM_REG_SIZE(reg->id));
+ return copy_to_user(uaddr, &val, KVM_REG_SIZE(reg->id)) ? -EFAULT : 0;
}
/**
@@ -1,31 +0,0 @@
From 029cd0370241641eb70235d205aa0b90c84dce44 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Thu, 24 Sep 2015 16:59:46 +0200
Subject: ath9k: declare required extra tx headroom
From: Felix Fietkau <nbd@openwrt.org>
commit 029cd0370241641eb70235d205aa0b90c84dce44 upstream.
ath9k inserts padding between the 802.11 header and the data area (to
align it). Since it didn't declare this extra required headroom, this
led to some nasty issues like randomly dropped packets in some setups.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/wireless/ath/ath9k/init.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -874,6 +874,7 @@ static void ath9k_set_hw_capab(struct at
hw->max_rate_tries = 10;
hw->sta_data_size = sizeof(struct ath_node);
hw->vif_data_size = sizeof(struct ath_vif);
+ hw->extra_tx_headroom = 4;
hw->wiphy->available_antennas_rx = BIT(ah->caps.max_rxchains) - 1;
hw->wiphy->available_antennas_tx = BIT(ah->caps.max_txchains) - 1;
@@ -0,0 +1,36 @@
From 5f009d3f8e6685fe8c6215082c1696a08b411220 Mon Sep 17 00:00:00 2001
From: Keith Busch <keith.busch@intel.com>
Date: Wed, 10 Feb 2016 16:52:47 -0700
Subject: block: Initialize max_dev_sectors to 0
From: Keith Busch <keith.busch@intel.com>
commit 5f009d3f8e6685fe8c6215082c1696a08b411220 upstream.
The new queue limit is not used by the majority of block drivers, and
should be initialized to 0 for the driver's requested settings to be used.
Signed-off-by: Keith Busch <keith.busch@intel.com>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
block/blk-settings.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -91,8 +91,8 @@ void blk_set_default_limits(struct queue
lim->seg_boundary_mask = BLK_SEG_BOUNDARY_MASK;
lim->virt_boundary_mask = 0;
lim->max_segment_size = BLK_MAX_SEGMENT_SIZE;
- lim->max_sectors = lim->max_dev_sectors = lim->max_hw_sectors =
- BLK_SAFE_MAX_SECTORS;
+ lim->max_sectors = lim->max_hw_sectors = BLK_SAFE_MAX_SECTORS;
+ lim->max_dev_sectors = 0;
lim->chunk_sectors = 0;
lim->max_write_same_sectors = 0;
lim->max_discard_sectors = 0;
@@ -0,0 +1,36 @@
From 0a95b851370b84a4b9d92ee6d1fa0926901d0454 Mon Sep 17 00:00:00 2001
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
Date: Fri, 22 Jan 2016 09:28:38 +0800
Subject: btrfs: async-thread: Fix a use-after-free error for trace
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
commit 0a95b851370b84a4b9d92ee6d1fa0926901d0454 upstream.
Parameter of trace_btrfs_work_queued() can be freed in its workqueue.
So no one use use that pointer after queue_work().
Fix the user-after-free bug by move the trace line before queue_work().
Reported-by: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/async-thread.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/fs/btrfs/async-thread.c
+++ b/fs/btrfs/async-thread.c
@@ -328,8 +328,8 @@ static inline void __btrfs_queue_work(st
list_add_tail(&work->ordered_list, &wq->ordered_list);
spin_unlock_irqrestore(&wq->list_lock, flags);
}
- queue_work(wq->normal_wq, &work->normal_work);
trace_btrfs_work_queued(work);
+ queue_work(wq->normal_wq, &work->normal_work);
}
void btrfs_queue_work(struct btrfs_workqueue *wq,
@@ -0,0 +1,238 @@
From c2d6cb1636d235257086f939a8194ef0bf93af6e Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana@suse.com>
Date: Fri, 15 Jan 2016 11:05:12 +0000
Subject: Btrfs: fix deadlock running delayed iputs at transaction commit time
From: Filipe Manana <fdmanana@suse.com>
commit c2d6cb1636d235257086f939a8194ef0bf93af6e upstream.
While running a stress test I ran into a deadlock when running the delayed
iputs at transaction time, which produced the following report and trace:
[ 886.399989] =============================================
[ 886.400871] [ INFO: possible recursive locking detected ]
[ 886.401663] 4.4.0-rc6-btrfs-next-18+ #1 Not tainted
[ 886.402384] ---------------------------------------------
[ 886.403182] fio/8277 is trying to acquire lock:
[ 886.403568] (&fs_info->delayed_iput_sem){++++..}, at: [<ffffffffa0538823>] btrfs_run_delayed_iputs+0x36/0xbf [btrfs]
[ 886.403568]
[ 886.403568] but task is already holding lock:
[ 886.403568] (&fs_info->delayed_iput_sem){++++..}, at: [<ffffffffa0538823>] btrfs_run_delayed_iputs+0x36/0xbf [btrfs]
[ 886.403568]
[ 886.403568] other info that might help us debug this:
[ 886.403568] Possible unsafe locking scenario:
[ 886.403568]
[ 886.403568] CPU0
[ 886.403568] ----
[ 886.403568] lock(&fs_info->delayed_iput_sem);
[ 886.403568] lock(&fs_info->delayed_iput_sem);
[ 886.403568]
[ 886.403568] *** DEADLOCK ***
[ 886.403568]
[ 886.403568] May be due to missing lock nesting notation
[ 886.403568]
[ 886.403568] 3 locks held by fio/8277:
[ 886.403568] #0: (sb_writers#11){.+.+.+}, at: [<ffffffff81174c4c>] __sb_start_write+0x5f/0xb0
[ 886.403568] #1: (&sb->s_type->i_mutex_key#15){+.+.+.}, at: [<ffffffffa054620d>] btrfs_file_write_iter+0x73/0x408 [btrfs]
[ 886.403568] #2: (&fs_info->delayed_iput_sem){++++..}, at: [<ffffffffa0538823>] btrfs_run_delayed_iputs+0x36/0xbf [btrfs]
[ 886.403568]
[ 886.403568] stack backtrace:
[ 886.403568] CPU: 6 PID: 8277 Comm: fio Not tainted 4.4.0-rc6-btrfs-next-18+ #1
[ 886.403568] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS by qemu-project.org 04/01/2014
[ 886.403568] 0000000000000000 ffff88009f80f770 ffffffff8125d4fd ffffffff82af1fc0
[ 886.403568] ffff88009f80f830 ffffffff8108e5f9 0000000200000000 ffff88009fd92290
[ 886.403568] 0000000000000000 ffffffff82af1fc0 ffffffff829cfb01 00042b216d008804
[ 886.403568] Call Trace:
[ 886.403568] [<ffffffff8125d4fd>] dump_stack+0x4e/0x79
[ 886.403568] [<ffffffff8108e5f9>] __lock_acquire+0xd42/0xf0b
[ 886.403568] [<ffffffff810c22db>] ? __module_address+0xdf/0x108
[ 886.403568] [<ffffffff8108eb77>] lock_acquire+0x10d/0x194
[ 886.403568] [<ffffffff8108eb77>] ? lock_acquire+0x10d/0x194
[ 886.403568] [<ffffffffa0538823>] ? btrfs_run_delayed_iputs+0x36/0xbf [btrfs]
[ 886.489542] [<ffffffff8148556b>] down_read+0x3e/0x4d
[ 886.489542] [<ffffffffa0538823>] ? btrfs_run_delayed_iputs+0x36/0xbf [btrfs]
[ 886.489542] [<ffffffffa0538823>] btrfs_run_delayed_iputs+0x36/0xbf [btrfs]
[ 886.489542] [<ffffffffa0533953>] btrfs_commit_transaction+0x8f5/0x96e [btrfs]
[ 886.489542] [<ffffffffa0521d7a>] flush_space+0x435/0x44a [btrfs]
[ 886.489542] [<ffffffffa052218b>] ? reserve_metadata_bytes+0x26a/0x384 [btrfs]
[ 886.489542] [<ffffffffa05221ae>] reserve_metadata_bytes+0x28d/0x384 [btrfs]
[ 886.489542] [<ffffffffa052256c>] ? btrfs_block_rsv_refill+0x58/0x96 [btrfs]
[ 886.489542] [<ffffffffa0522584>] btrfs_block_rsv_refill+0x70/0x96 [btrfs]
[ 886.489542] [<ffffffffa053d747>] btrfs_evict_inode+0x394/0x55a [btrfs]
[ 886.489542] [<ffffffff81188e31>] evict+0xa7/0x15c
[ 886.489542] [<ffffffff81189878>] iput+0x1d3/0x266
[ 886.489542] [<ffffffffa053887c>] btrfs_run_delayed_iputs+0x8f/0xbf [btrfs]
[ 886.489542] [<ffffffffa0533953>] btrfs_commit_transaction+0x8f5/0x96e [btrfs]
[ 886.489542] [<ffffffff81085096>] ? signal_pending_state+0x31/0x31
[ 886.489542] [<ffffffffa0521191>] btrfs_alloc_data_chunk_ondemand+0x1d7/0x288 [btrfs]
[ 886.489542] [<ffffffffa0521282>] btrfs_check_data_free_space+0x40/0x59 [btrfs]
[ 886.489542] [<ffffffffa05228f5>] btrfs_delalloc_reserve_space+0x1e/0x4e [btrfs]
[ 886.489542] [<ffffffffa053620a>] btrfs_direct_IO+0x10c/0x27e [btrfs]
[ 886.489542] [<ffffffff8111d9a1>] generic_file_direct_write+0xb3/0x128
[ 886.489542] [<ffffffffa05463c3>] btrfs_file_write_iter+0x229/0x408 [btrfs]
[ 886.489542] [<ffffffff8108ae38>] ? __lock_is_held+0x38/0x50
[ 886.489542] [<ffffffff8117279e>] __vfs_write+0x7c/0xa5
[ 886.489542] [<ffffffff81172cda>] vfs_write+0xa0/0xe4
[ 886.489542] [<ffffffff811734cc>] SyS_write+0x50/0x7e
[ 886.489542] [<ffffffff814872d7>] entry_SYSCALL_64_fastpath+0x12/0x6f
[ 1081.852335] INFO: task fio:8244 blocked for more than 120 seconds.
[ 1081.854348] Not tainted 4.4.0-rc6-btrfs-next-18+ #1
[ 1081.857560] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1081.863227] fio D ffff880213f9bb28 0 8244 8240 0x00000000
[ 1081.868719] ffff880213f9bb28 00ffffff810fc6b0 ffffffff0000000a ffff88023ed55240
[ 1081.872499] ffff880206b5d400 ffff880213f9c000 ffff88020a4d5318 ffff880206b5d400
[ 1081.876834] ffffffff00000001 ffff880206b5d400 ffff880213f9bb40 ffffffff81482ba4
[ 1081.880782] Call Trace:
[ 1081.881793] [<ffffffff81482ba4>] schedule+0x7f/0x97
[ 1081.883340] [<ffffffff81485eb5>] rwsem_down_write_failed+0x2d5/0x325
[ 1081.895525] [<ffffffff8108d48d>] ? trace_hardirqs_on_caller+0x16/0x1ab
[ 1081.897419] [<ffffffff81269723>] call_rwsem_down_write_failed+0x13/0x20
[ 1081.899251] [<ffffffff81269723>] ? call_rwsem_down_write_failed+0x13/0x20
[ 1081.901063] [<ffffffff81089fae>] ? __down_write_nested.isra.0+0x1f/0x21
[ 1081.902365] [<ffffffff814855bd>] down_write+0x43/0x57
[ 1081.903846] [<ffffffffa05211b0>] ? btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs]
[ 1081.906078] [<ffffffffa05211b0>] btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs]
[ 1081.908846] [<ffffffff8108d461>] ? mark_held_locks+0x56/0x6c
[ 1081.910409] [<ffffffffa0521282>] btrfs_check_data_free_space+0x40/0x59 [btrfs]
[ 1081.912482] [<ffffffffa05228f5>] btrfs_delalloc_reserve_space+0x1e/0x4e [btrfs]
[ 1081.914597] [<ffffffffa053620a>] btrfs_direct_IO+0x10c/0x27e [btrfs]
[ 1081.919037] [<ffffffff8111d9a1>] generic_file_direct_write+0xb3/0x128
[ 1081.920754] [<ffffffffa05463c3>] btrfs_file_write_iter+0x229/0x408 [btrfs]
[ 1081.922496] [<ffffffff8108ae38>] ? __lock_is_held+0x38/0x50
[ 1081.923922] [<ffffffff8117279e>] __vfs_write+0x7c/0xa5
[ 1081.925275] [<ffffffff81172cda>] vfs_write+0xa0/0xe4
[ 1081.926584] [<ffffffff811734cc>] SyS_write+0x50/0x7e
[ 1081.927968] [<ffffffff814872d7>] entry_SYSCALL_64_fastpath+0x12/0x6f
[ 1081.985293] INFO: lockdep is turned off.
[ 1081.986132] INFO: task fio:8249 blocked for more than 120 seconds.
[ 1081.987434] Not tainted 4.4.0-rc6-btrfs-next-18+ #1
[ 1081.988534] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1081.990147] fio D ffff880218febbb8 0 8249 8240 0x00000000
[ 1081.991626] ffff880218febbb8 00ffffff81486b8e ffff88020000000b ffff88023ed75240
[ 1081.993258] ffff8802120a9a00 ffff880218fec000 ffff88020a4d5318 ffff8802120a9a00
[ 1081.994850] ffffffff00000001 ffff8802120a9a00 ffff880218febbd0 ffffffff81482ba4
[ 1081.996485] Call Trace:
[ 1081.997037] [<ffffffff81482ba4>] schedule+0x7f/0x97
[ 1081.998017] [<ffffffff81485eb5>] rwsem_down_write_failed+0x2d5/0x325
[ 1081.999241] [<ffffffff810852a5>] ? finish_wait+0x6d/0x76
[ 1082.000306] [<ffffffff81269723>] call_rwsem_down_write_failed+0x13/0x20
[ 1082.001533] [<ffffffff81269723>] ? call_rwsem_down_write_failed+0x13/0x20
[ 1082.002776] [<ffffffff81089fae>] ? __down_write_nested.isra.0+0x1f/0x21
[ 1082.003995] [<ffffffff814855bd>] down_write+0x43/0x57
[ 1082.005000] [<ffffffffa05211b0>] ? btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs]
[ 1082.007403] [<ffffffffa05211b0>] btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs]
[ 1082.008988] [<ffffffffa0545064>] btrfs_fallocate+0x7c1/0xc2f [btrfs]
[ 1082.010193] [<ffffffff8108a1ba>] ? percpu_down_read+0x4e/0x77
[ 1082.011280] [<ffffffff81174c4c>] ? __sb_start_write+0x5f/0xb0
[ 1082.012265] [<ffffffff81174c4c>] ? __sb_start_write+0x5f/0xb0
[ 1082.013021] [<ffffffff811712e4>] vfs_fallocate+0x170/0x1ff
[ 1082.013738] [<ffffffff81181ebb>] ioctl_preallocate+0x89/0x9b
[ 1082.014778] [<ffffffff811822d7>] do_vfs_ioctl+0x40a/0x4ea
[ 1082.015778] [<ffffffff81176ea7>] ? SYSC_newfstat+0x25/0x2e
[ 1082.016806] [<ffffffff8118b4de>] ? __fget_light+0x4d/0x71
[ 1082.017789] [<ffffffff8118240e>] SyS_ioctl+0x57/0x79
[ 1082.018706] [<ffffffff814872d7>] entry_SYSCALL_64_fastpath+0x12/0x6f
This happens because we can recursively acquire the semaphore
fs_info->delayed_iput_sem when attempting to allocate space to satisfy
a file write request as shown in the first trace above - when committing
a transaction we acquire (down_read) the semaphore before running the
delayed iputs, and when running a delayed iput() we can end up calling
an inode's eviction handler, which in turn commits another transaction
and attempts to acquire (down_read) again the semaphore to run more
delayed iput operations.
This results in a deadlock because if a task acquires multiple times a
semaphore it should invoke down_read_nested() with a different lockdep
class for each level of recursion.
Fix this by simplifying the implementation and use a mutex instead that
is acquired by the cleaner kthread before it runs the delayed iputs
instead of always acquiring a semaphore before delayed references are
run from anywhere.
Fixes: d7c151717a1e (btrfs: Fix NO_SPACE bug caused by delayed-iput)
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/ctree.h | 2 +-
fs/btrfs/disk-io.c | 5 ++++-
fs/btrfs/extent-tree.c | 9 +++++----
fs/btrfs/inode.c | 4 ----
4 files changed, 10 insertions(+), 10 deletions(-)
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -1572,7 +1572,7 @@ struct btrfs_fs_info {
spinlock_t delayed_iput_lock;
struct list_head delayed_iputs;
- struct rw_semaphore delayed_iput_sem;
+ struct mutex cleaner_delayed_iput_mutex;
/* this protects tree_mod_seq_list */
spinlock_t tree_mod_seq_lock;
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -1796,7 +1796,10 @@ static int cleaner_kthread(void *arg)
goto sleep;
}
+ mutex_lock(&root->fs_info->cleaner_delayed_iput_mutex);
btrfs_run_delayed_iputs(root);
+ mutex_unlock(&root->fs_info->cleaner_delayed_iput_mutex);
+
again = btrfs_clean_one_deleted_snapshot(root);
mutex_unlock(&root->fs_info->cleaner_mutex);
@@ -2556,8 +2559,8 @@ int open_ctree(struct super_block *sb,
mutex_init(&fs_info->delete_unused_bgs_mutex);
mutex_init(&fs_info->reloc_mutex);
mutex_init(&fs_info->delalloc_root_mutex);
+ mutex_init(&fs_info->cleaner_delayed_iput_mutex);
seqlock_init(&fs_info->profiles_lock);
- init_rwsem(&fs_info->delayed_iput_sem);
INIT_LIST_HEAD(&fs_info->dirty_cowonly_roots);
INIT_LIST_HEAD(&fs_info->space_info);
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -4100,11 +4100,12 @@ commit_trans:
if (ret)
return ret;
/*
- * make sure that all running delayed iput are
- * done
+ * The cleaner kthread might still be doing iput
+ * operations. Wait for it to finish so that
+ * more space is released.
*/
- down_write(&root->fs_info->delayed_iput_sem);
- up_write(&root->fs_info->delayed_iput_sem);
+ mutex_lock(&root->fs_info->cleaner_delayed_iput_mutex);
+ mutex_unlock(&root->fs_info->cleaner_delayed_iput_mutex);
goto again;
} else {
btrfs_end_transaction(trans, root);
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3142,8 +3142,6 @@ void btrfs_run_delayed_iputs(struct btrf
if (empty)
return;
- down_read(&fs_info->delayed_iput_sem);
-
spin_lock(&fs_info->delayed_iput_lock);
list_splice_init(&fs_info->delayed_iputs, &list);
spin_unlock(&fs_info->delayed_iput_lock);
@@ -3154,8 +3152,6 @@ void btrfs_run_delayed_iputs(struct btrf
iput(delayed->inode);
kfree(delayed);
}
-
- up_read(&root->fs_info->delayed_iput_sem);
}
/*
@@ -0,0 +1,47 @@
From e1746e8381cd2af421f75557b5cae3604fc18b35 Mon Sep 17 00:00:00 2001
From: Zhao Lei <zhaolei@cn.fujitsu.com>
Date: Tue, 1 Dec 2015 18:39:40 +0800
Subject: btrfs: Fix no_space in write and rm loop
From: Zhao Lei <zhaolei@cn.fujitsu.com>
commit e1746e8381cd2af421f75557b5cae3604fc18b35 upstream.
I see no_space in v4.4-rc1 again in xfstests generic/102.
It happened randomly in some node only.
(one of 4 phy-node, and a kvm with non-virtio block driver)
By bisect, we can found the first-bad is:
commit bdced438acd8 ("block: setup bi_phys_segments after splitting")'
But above patch only triggered the bug by making bio operation
faster(or slower).
Main reason is in our space_allocating code, we need to commit
page writeback before wait it complish, this patch fixed above
bug.
BTW, there is another reason for generic/102 fail, caused by
disable default mixed-blockgroup, I'll fix it in xfstests.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/extent-tree.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -4086,8 +4086,10 @@ commit_trans:
!atomic_read(&root->fs_info->open_ioctl_trans)) {
need_commit--;
- if (need_commit > 0)
+ if (need_commit > 0) {
+ btrfs_start_delalloc_roots(fs_info, 0, -1);
btrfs_wait_ordered_roots(fs_info, -1);
+ }
trans = btrfs_join_transaction(root);
if (IS_ERR(trans))
@@ -0,0 +1,104 @@
From deb7deff2f00bdbbcb3d560dad2a89ef37df837d Mon Sep 17 00:00:00 2001
From: Justin Maggard <jmaggard10@gmail.com>
Date: Tue, 9 Feb 2016 15:52:08 -0800
Subject: cifs: fix out-of-bounds access in lease parsing
From: Justin Maggard <jmaggard10@gmail.com>
commit deb7deff2f00bdbbcb3d560dad2a89ef37df837d upstream.
When opening a file, SMB2_open() attempts to parse the lease state from the
SMB2 CREATE Response. However, the parsing code was not careful to ensure
that the create contexts are not empty or invalid, which can lead to out-
of-bounds memory access. This can be seen easily by trying
to read a file from a OSX 10.11 SMB3 server. Here is sample crash output:
BUG: unable to handle kernel paging request at ffff8800a1a77cc6
IP: [<ffffffff8828a734>] SMB2_open+0x804/0x960
PGD 8f77067 PUD 0
Oops: 0000 [#1] SMP
Modules linked in:
CPU: 3 PID: 2876 Comm: cp Not tainted 4.5.0-rc3.x86_64.1+ #14
Hardware name: NETGEAR ReadyNAS 314 /ReadyNAS 314 , BIOS 4.6.5 10/11/2012
task: ffff880073cdc080 ti: ffff88005b31c000 task.ti: ffff88005b31c000
RIP: 0010:[<ffffffff8828a734>] [<ffffffff8828a734>] SMB2_open+0x804/0x960
RSP: 0018:ffff88005b31fa08 EFLAGS: 00010282
RAX: 0000000000000015 RBX: 0000000000000000 RCX: 0000000000000006
RDX: 0000000000000000 RSI: 0000000000000246 RDI: ffff88007eb8c8b0
RBP: ffff88005b31fad8 R08: 666666203d206363 R09: 6131613030383866
R10: 3030383866666666 R11: 00000000000002b0 R12: ffff8800660fd800
R13: ffff8800a1a77cc2 R14: 00000000424d53fe R15: ffff88005f5a28c0
FS: 00007f7c8a2897c0(0000) GS:ffff88007eb80000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffff8800a1a77cc6 CR3: 000000005b281000 CR4: 00000000000006e0
Stack:
ffff88005b31fa70 ffffffff88278789 00000000000001d3 ffff88005f5a2a80
ffffffff00000003 ffff88005d029d00 ffff88006fde05a0 0000000000000000
ffff88005b31fc78 ffff88006fde0780 ffff88005b31fb2f 0000000100000fe0
Call Trace:
[<ffffffff88278789>] ? cifsConvertToUTF16+0x159/0x2d0
[<ffffffff8828cf68>] smb2_open_file+0x98/0x210
[<ffffffff8811e80c>] ? __kmalloc+0x1c/0xe0
[<ffffffff882685f4>] cifs_open+0x2a4/0x720
[<ffffffff88122cef>] do_dentry_open+0x1ff/0x310
[<ffffffff88268350>] ? cifsFileInfo_get+0x30/0x30
[<ffffffff88123d92>] vfs_open+0x52/0x60
[<ffffffff88131dd0>] path_openat+0x170/0xf70
[<ffffffff88097d48>] ? remove_wait_queue+0x48/0x50
[<ffffffff88133a29>] do_filp_open+0x79/0xd0
[<ffffffff8813f2ca>] ? __alloc_fd+0x3a/0x170
[<ffffffff881240c4>] do_sys_open+0x114/0x1e0
[<ffffffff881241a9>] SyS_open+0x19/0x20
[<ffffffff8896e257>] entry_SYSCALL_64_fastpath+0x12/0x6a
Code: 4d 8d 6c 07 04 31 c0 4c 89 ee e8 47 6f e5 ff 31 c9 41 89 ce 44 89 f1 48 c7 c7 28 b1 bd 88 31 c0 49 01 cd 4c 89 ee e8 2b 6f e5 ff <45> 0f b7 75 04 48 c7 c7 31 b1 bd 88 31 c0 4d 01 ee 4c 89 f6 e8
RIP [<ffffffff8828a734>] SMB2_open+0x804/0x960
RSP <ffff88005b31fa08>
CR2: ffff8800a1a77cc6
---[ end trace d9f69ba64feee469 ]---
Signed-off-by: Justin Maggard <jmaggard@netgear.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/cifs/smb2pdu.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -1109,21 +1109,25 @@ parse_lease_state(struct TCP_Server_Info
{
char *data_offset;
struct create_context *cc;
- unsigned int next = 0;
+ unsigned int next;
+ unsigned int remaining;
char *name;
data_offset = (char *)rsp + 4 + le32_to_cpu(rsp->CreateContextsOffset);
+ remaining = le32_to_cpu(rsp->CreateContextsLength);
cc = (struct create_context *)data_offset;
- do {
- cc = (struct create_context *)((char *)cc + next);
+ while (remaining >= sizeof(struct create_context)) {
name = le16_to_cpu(cc->NameOffset) + (char *)cc;
- if (le16_to_cpu(cc->NameLength) != 4 ||
- strncmp(name, "RqLs", 4)) {
- next = le32_to_cpu(cc->Next);
- continue;
- }
- return server->ops->parse_lease_buf(cc, epoch);
- } while (next != 0);
+ if (le16_to_cpu(cc->NameLength) == 4 &&
+ strncmp(name, "RqLs", 4) == 0)
+ return server->ops->parse_lease_buf(cc, epoch);
+
+ next = le32_to_cpu(cc->Next);
+ if (!next)
+ break;
+ remaining -= next;
+ cc = (struct create_context *)((char *)cc + next);
+ }
return 0;
}
@@ -0,0 +1,72 @@
From 6cc3b24235929b54acd5ecc987ef11a425bd209e Mon Sep 17 00:00:00 2001
From: Pavel Shilovsky <pshilovsky@samba.org>
Date: Sat, 27 Feb 2016 11:58:18 +0300
Subject: CIFS: Fix SMB2+ interim response processing for read requests
From: Pavel Shilovsky <pshilovsky@samba.org>
commit 6cc3b24235929b54acd5ecc987ef11a425bd209e upstream.
For interim responses we only need to parse a header and update
a number credits. Now it is done for all SMB2+ command except
SMB2_READ which is wrong. Fix this by adding such processing.
Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Tested-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/cifs/cifssmb.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -1396,11 +1396,10 @@ openRetry:
* current bigbuf.
*/
static int
-cifs_readv_discard(struct TCP_Server_Info *server, struct mid_q_entry *mid)
+discard_remaining_data(struct TCP_Server_Info *server)
{
unsigned int rfclen = get_rfc1002_length(server->smallbuf);
int remaining = rfclen + 4 - server->total_read;
- struct cifs_readdata *rdata = mid->callback_data;
while (remaining > 0) {
int length;
@@ -1414,10 +1413,20 @@ cifs_readv_discard(struct TCP_Server_Inf
remaining -= length;
}
- dequeue_mid(mid, rdata->result);
return 0;
}
+static int
+cifs_readv_discard(struct TCP_Server_Info *server, struct mid_q_entry *mid)
+{
+ int length;
+ struct cifs_readdata *rdata = mid->callback_data;
+
+ length = discard_remaining_data(server);
+ dequeue_mid(mid, rdata->result);
+ return length;
+}
+
int
cifs_readv_receive(struct TCP_Server_Info *server, struct mid_q_entry *mid)
{
@@ -1446,6 +1455,12 @@ cifs_readv_receive(struct TCP_Server_Inf
return length;
server->total_read += length;
+ if (server->ops->is_status_pending &&
+ server->ops->is_status_pending(buf, server, 0)) {
+ discard_remaining_data(server);
+ return -1;
+ }
+
/* Was the SMB read successful? */
rdata->result = server->ops->map_error(buf, false);
if (rdata->result != 0) {
@@ -0,0 +1,39 @@
From 0378ba4899d5fbd8494ed6580cbc81d7b44dbac6 Mon Sep 17 00:00:00 2001
From: Geert Uytterhoeven <geert+renesas@glider.be>
Date: Wed, 24 Feb 2016 09:43:23 +0100
Subject: drivers: sh: Restore legacy clock domain on SuperH platforms
From: Geert Uytterhoeven <geert+renesas@glider.be>
commit 0378ba4899d5fbd8494ed6580cbc81d7b44dbac6 upstream.
CONFIG_ARCH_SHMOBILE is not only enabled for Renesas ARM platforms
(which are DT based and multi-platform), but also on a select set of
Renesas SuperH platforms (SH7722/SH7723/SH7724/SH7343/SH7366). Hence
since commit 0ba58de231066e47 ("drivers: sh: Get rid of
CONFIG_ARCH_SHMOBILE_MULTI"), the legacy clock domain is no longer
installed on these SuperH platforms, and module clocks may not be
enabled when needed, leading to driver failures.
To fix this, add an additional check for CONFIG_OF.
Fixes: 0ba58de231066e47 ("drivers: sh: Get rid of CONFIG_ARCH_SHMOBILE_MULTI").
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/sh/pm_runtime.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/sh/pm_runtime.c
+++ b/drivers/sh/pm_runtime.c
@@ -34,7 +34,7 @@ static struct pm_clk_notifier_block plat
static int __init sh_pm_runtime_init(void)
{
- if (IS_ENABLED(CONFIG_ARCH_SHMOBILE)) {
+ if (IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_ARCH_SHMOBILE)) {
if (!of_find_compatible_node(NULL, NULL,
"renesas,cpg-mstp-clocks"))
return 0;
@@ -0,0 +1,46 @@
From a187f17f0e15a046aa5d7263b35df55230d92779 Mon Sep 17 00:00:00 2001
From: Oded Gabbay <oded.gabbay@gmail.com>
Date: Sat, 30 Jan 2016 07:59:34 +0200
Subject: drm/amdgpu: mask out WC from BO on unsupported arches
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Oded Gabbay <oded.gabbay@gmail.com>
commit a187f17f0e15a046aa5d7263b35df55230d92779 upstream.
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -33,6 +33,7 @@
#include <linux/slab.h>
#include <drm/drmP.h>
#include <drm/amdgpu_drm.h>
+#include <drm/drm_cache.h>
#include "amdgpu.h"
#include "amdgpu_trace.h"
@@ -261,6 +262,13 @@ int amdgpu_bo_create_restricted(struct a
AMDGPU_GEM_DOMAIN_OA);
bo->flags = flags;
+
+ /* For architectures that don't support WC memory,
+ * mask out the WC flag from the BO
+ */
+ if (!drm_arch_can_wc_memory())
+ bo->flags &= ~AMDGPU_GEM_CREATE_CPU_GTT_USWC;
+
amdgpu_fill_placement_to_bo(bo, placement);
/* Kernel allocation are uninterruptible */
r = ttm_bo_init(&adev->mman.bdev, &bo->tbo, size, type,
@@ -0,0 +1,66 @@
From a1e533ec07d583d01349ef13c0c965b8633e1b91 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Date: Mon, 15 Feb 2016 18:41:33 +0000
Subject: fbcon: set a default value to blink interval
From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
commit a1e533ec07d583d01349ef13c0c965b8633e1b91 upstream.
Since commit 27a4c827c34ac4256a190cc9d24607f953c1c459
fbcon: use the cursor blink interval provided by vt
two attempts have been made at fixing a possible hang caused by
cursor_timer_handler. That function registers a timer to be triggered at
"jiffies + fbcon_ops.cur_blink_jiffies".
A new case had been encountered during initialisation of clcd-pl11x:
fbcon_fb_registered
do_fbcon_takeover
-> do_register_con_driver
fbcon_startup
(A) add_cursor_timer (with cur_blink_jiffies = 0)
-> do_bind_con_driver
visual_init
fbcon_init
(B) cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);
If we take an softirq anywhere between A and B (and we do),
cursor_timer_handler executes indefinitely.
Instead of patching all possible paths that lead to this case one at a
time, fix the issue at the source and initialise cur_blink_jiffies to
200ms when allocating fbcon_ops. This was its default value before
aforesaid commit. fbcon_cursor or fbcon_init will refine this value
downstream.
Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Tested-by: Scot Doyle <lkml14@scotdoyle.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/video/console/fbcon.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -709,6 +709,7 @@ static int con2fb_acquire_newinfo(struct
}
if (!err) {
+ ops->cur_blink_jiffies = HZ / 5;
info->fbcon_par = ops;
if (vc)
@@ -956,6 +957,7 @@ static const char *fbcon_startup(void)
ops->currcon = -1;
ops->graphics = 1;
ops->cur_rotate = -1;
+ ops->cur_blink_jiffies = HZ / 5;
info->fbcon_par = ops;
p->con_rotate = initial_rotation;
set_blitting_type(vc, info);
@@ -0,0 +1,63 @@
From 1ee9f4bd1a97026a7b2d7ae9f1f74b45680d0003 Mon Sep 17 00:00:00 2001
From: Yadan Fan <ydfan@novell.com>
Date: Mon, 29 Feb 2016 14:44:57 +0800
Subject: Fix cifs_uniqueid_to_ino_t() function for s390x
From: Yadan Fan <ydfan@novell.com>
commit 1ee9f4bd1a97026a7b2d7ae9f1f74b45680d0003 upstream.
This issue is caused by commit 02323db17e3a7 ("cifs: fix
cifs_uniqueid_to_ino_t not to ever return 0"), when BITS_PER_LONG
is 64 on s390x, the corresponding cifs_uniqueid_to_ino_t()
function will cast 64-bit fileid to 32-bit by using (ino_t)fileid,
because ino_t (typdefed __kernel_ino_t) is int type.
It's defined in arch/s390/include/uapi/asm/posix_types.h
#ifndef __s390x__
typedef unsigned long __kernel_ino_t;
...
#else /* __s390x__ */
typedef unsigned int __kernel_ino_t;
So the #ifdef condition is wrong for s390x, we can just still use
one cifs_uniqueid_to_ino_t() function with comparing sizeof(ino_t)
and sizeof(u64) to choose the correct execution accordingly.
Signed-off-by: Yadan Fan <ydfan@suse.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/cifs/cifsfs.h | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
--- a/fs/cifs/cifsfs.h
+++ b/fs/cifs/cifsfs.h
@@ -31,19 +31,15 @@
* so that it will fit. We use hash_64 to convert the value to 31 bits, and
* then add 1, to ensure that we don't end up with a 0 as the value.
*/
-#if BITS_PER_LONG == 64
static inline ino_t
cifs_uniqueid_to_ino_t(u64 fileid)
{
+ if ((sizeof(ino_t)) < (sizeof(u64)))
+ return (ino_t)hash_64(fileid, (sizeof(ino_t) * 8) - 1) + 1;
+
return (ino_t)fileid;
+
}
-#else
-static inline ino_t
-cifs_uniqueid_to_ino_t(u64 fileid)
-{
- return (ino_t)hash_64(fileid, (sizeof(ino_t) * 8) - 1) + 1;
-}
-#endif
extern struct file_system_type cifs_fs_type;
extern const struct address_space_operations cifs_addr_ops;
@@ -0,0 +1,78 @@
From 358875fd52ab8f00f66328cbf1a1d2486f265829 Mon Sep 17 00:00:00 2001
From: Jay Cornwall <jay@jcornwall.me>
Date: Wed, 10 Feb 2016 15:48:01 -0600
Subject: iommu/amd: Apply workaround for ATS write permission check
From: Jay Cornwall <jay@jcornwall.me>
commit 358875fd52ab8f00f66328cbf1a1d2486f265829 upstream.
The AMD Family 15h Models 30h-3Fh (Kaveri) BIOS and Kernel Developer's
Guide omitted part of the BIOS IOMMU L2 register setup specification.
Without this setup the IOMMU L2 does not fully respect write permissions
when handling an ATS translation request.
The IOMMU L2 will set PTE dirty bit when handling an ATS translation with
write permission request, even when PTE RW bit is clear. This may occur by
direct translation (which would cause a PPR) or by prefetch request from
the ATC.
This is observed in practice when the IOMMU L2 modifies a PTE which maps a
pagecache page. The ext4 filesystem driver BUGs when asked to writeback
these (non-modified) pages.
Enable ATS write permission check in the Kaveri IOMMU L2 if BIOS has not.
Signed-off-by: Jay Cornwall <jay@jcornwall.me>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iommu/amd_iommu_init.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -1016,6 +1016,34 @@ static void amd_iommu_erratum_746_workar
}
/*
+ * Family15h Model 30h-3fh (IOMMU Mishandles ATS Write Permission)
+ * Workaround:
+ * BIOS should enable ATS write permission check by setting
+ * L2_DEBUG_3[AtsIgnoreIWDis](D0F2xF4_x47[0]) = 1b
+ */
+static void amd_iommu_ats_write_check_workaround(struct amd_iommu *iommu)
+{
+ u32 value;
+
+ if ((boot_cpu_data.x86 != 0x15) ||
+ (boot_cpu_data.x86_model < 0x30) ||
+ (boot_cpu_data.x86_model > 0x3f))
+ return;
+
+ /* Test L2_DEBUG_3[AtsIgnoreIWDis] == 1 */
+ value = iommu_read_l2(iommu, 0x47);
+
+ if (value & BIT(0))
+ return;
+
+ /* Set L2_DEBUG_3[AtsIgnoreIWDis] = 1 */
+ iommu_write_l2(iommu, 0x47, value | BIT(0));
+
+ pr_info("AMD-Vi: Applying ATS write check workaround for IOMMU at %s\n",
+ dev_name(&iommu->dev->dev));
+}
+
+/*
* This function clues the initialization function for one IOMMU
* together and also allocates the command buffer and programs the
* hardware. It does NOT enable the IOMMU. This is done afterwards.
@@ -1284,6 +1312,7 @@ static int iommu_init_pci(struct amd_iom
}
amd_iommu_erratum_746_workaround(iommu);
+ amd_iommu_ats_write_check_workaround(iommu);
iommu->iommu_dev = iommu_device_create(&iommu->dev->dev, iommu,
amd_iommu_groups, "ivhd%d",
@@ -0,0 +1,92 @@
From 38e45d02ea9f194b89d6bf41e52ccafc8e2c2b47 Mon Sep 17 00:00:00 2001
From: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Date: Tue, 23 Feb 2016 13:03:30 +0100
Subject: iommu/amd: Fix boot warning when device 00:00.0 is not iommu covered
From: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
commit 38e45d02ea9f194b89d6bf41e52ccafc8e2c2b47 upstream.
The setup code for the performance counters in the AMD IOMMU driver
tests whether the counters can be written. It tests to setup a counter
for device 00:00.0, which fails on systems where this particular device
is not covered by the IOMMU.
Fix this by not relying on device 00:00.0 but only on the IOMMU being
present.
Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iommu/amd_iommu_init.c | 34 ++++++++++++++++++++++------------
1 file changed, 22 insertions(+), 12 deletions(-)
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -228,6 +228,10 @@ static int amd_iommu_enable_interrupts(v
static int __init iommu_go_to_state(enum iommu_init_state state);
static void init_device_table_dma(void);
+static int iommu_pc_get_set_reg_val(struct amd_iommu *iommu,
+ u8 bank, u8 cntr, u8 fxn,
+ u64 *value, bool is_write);
+
static inline void update_last_devid(u16 devid)
{
if (devid > amd_iommu_last_bdf)
@@ -1170,8 +1174,8 @@ static void init_iommu_perf_ctr(struct a
amd_iommu_pc_present = true;
/* Check if the performance counters can be written to */
- if ((0 != amd_iommu_pc_get_set_reg_val(0, 0, 0, 0, &val, true)) ||
- (0 != amd_iommu_pc_get_set_reg_val(0, 0, 0, 0, &val2, false)) ||
+ if ((0 != iommu_pc_get_set_reg_val(iommu, 0, 0, 0, &val, true)) ||
+ (0 != iommu_pc_get_set_reg_val(iommu, 0, 0, 0, &val2, false)) ||
(val != val2)) {
pr_err("AMD-Vi: Unable to write to IOMMU perf counter.\n");
amd_iommu_pc_present = false;
@@ -2312,22 +2316,15 @@ u8 amd_iommu_pc_get_max_counters(u16 dev
}
EXPORT_SYMBOL(amd_iommu_pc_get_max_counters);
-int amd_iommu_pc_get_set_reg_val(u16 devid, u8 bank, u8 cntr, u8 fxn,
+static int iommu_pc_get_set_reg_val(struct amd_iommu *iommu,
+ u8 bank, u8 cntr, u8 fxn,
u64 *value, bool is_write)
{
- struct amd_iommu *iommu;
u32 offset;
u32 max_offset_lim;
- /* Make sure the IOMMU PC resource is available */
- if (!amd_iommu_pc_present)
- return -ENODEV;
-
- /* Locate the iommu associated with the device ID */
- iommu = amd_iommu_rlookup_table[devid];
-
/* Check for valid iommu and pc register indexing */
- if (WARN_ON((iommu == NULL) || (fxn > 0x28) || (fxn & 7)))
+ if (WARN_ON((fxn > 0x28) || (fxn & 7)))
return -ENODEV;
offset = (u32)(((0x40|bank) << 12) | (cntr << 8) | fxn);
@@ -2351,3 +2348,16 @@ int amd_iommu_pc_get_set_reg_val(u16 dev
return 0;
}
EXPORT_SYMBOL(amd_iommu_pc_get_set_reg_val);
+
+int amd_iommu_pc_get_set_reg_val(u16 devid, u8 bank, u8 cntr, u8 fxn,
+ u64 *value, bool is_write)
+{
+ struct amd_iommu *iommu = amd_iommu_rlookup_table[devid];
+
+ /* Make sure the IOMMU PC resource is available */
+ if (!amd_iommu_pc_present || iommu == NULL)
+ return -ENODEV;
+
+ return iommu_pc_get_set_reg_val(iommu, bank, cntr, fxn,
+ value, is_write);
+}
@@ -0,0 +1,68 @@
From e6a8c9b337eed56eb481e1b4dd2180c25a1e5310 Mon Sep 17 00:00:00 2001
From: Joerg Roedel <jroedel@suse.de>
Date: Mon, 29 Feb 2016 23:49:47 +0100
Subject: iommu/vt-d: Use BUS_NOTIFY_REMOVED_DEVICE in hotplug path
From: Joerg Roedel <jroedel@suse.de>
commit e6a8c9b337eed56eb481e1b4dd2180c25a1e5310 upstream.
In the PCI hotplug path of the Intel IOMMU driver, replace
the usage of the BUS_NOTIFY_DEL_DEVICE notifier, which is
executed before the driver is unbound from the device, with
BUS_NOTIFY_REMOVED_DEVICE, which runs after that.
This fixes a kernel BUG being triggered in the VT-d code
when the device driver tries to unmap DMA buffers and the
VT-d driver already destroyed all mappings.
Reported-by: Stefani Seibold <stefani@seibold.net>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iommu/dmar.c | 5 +++--
drivers/iommu/intel-iommu.c | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
--- a/drivers/iommu/dmar.c
+++ b/drivers/iommu/dmar.c
@@ -329,7 +329,8 @@ static int dmar_pci_bus_notifier(struct
/* Only care about add/remove events for physical functions */
if (pdev->is_virtfn)
return NOTIFY_DONE;
- if (action != BUS_NOTIFY_ADD_DEVICE && action != BUS_NOTIFY_DEL_DEVICE)
+ if (action != BUS_NOTIFY_ADD_DEVICE &&
+ action != BUS_NOTIFY_REMOVED_DEVICE)
return NOTIFY_DONE;
info = dmar_alloc_pci_notify_info(pdev, action);
@@ -339,7 +340,7 @@ static int dmar_pci_bus_notifier(struct
down_write(&dmar_global_lock);
if (action == BUS_NOTIFY_ADD_DEVICE)
dmar_pci_bus_add_dev(info);
- else if (action == BUS_NOTIFY_DEL_DEVICE)
+ else if (action == BUS_NOTIFY_REMOVED_DEVICE)
dmar_pci_bus_del_dev(info);
up_write(&dmar_global_lock);
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -4367,7 +4367,7 @@ int dmar_iommu_notify_scope_dev(struct d
rmrru->devices_cnt);
if(ret < 0)
return ret;
- } else if (info->event == BUS_NOTIFY_DEL_DEVICE) {
+ } else if (info->event == BUS_NOTIFY_REMOVED_DEVICE) {
dmar_remove_dev_scope(info, rmrr->segment,
rmrru->devices, rmrru->devices_cnt);
}
@@ -4387,7 +4387,7 @@ int dmar_iommu_notify_scope_dev(struct d
break;
else if(ret < 0)
return ret;
- } else if (info->event == BUS_NOTIFY_DEL_DEVICE) {
+ } else if (info->event == BUS_NOTIFY_REMOVED_DEVICE) {
if (dmar_remove_dev_scope(info, atsr->segment,
atsru->devices, atsru->devices_cnt))
break;
@@ -0,0 +1,56 @@
From 70e4da7a8ff62f2775337b705f45c804bb450454 Mon Sep 17 00:00:00 2001
From: Paolo Bonzini <pbonzini@redhat.com>
Date: Fri, 26 Feb 2016 12:28:40 +0100
Subject: KVM: x86: fix root cause for missed hardware breakpoints
From: Paolo Bonzini <pbonzini@redhat.com>
commit 70e4da7a8ff62f2775337b705f45c804bb450454 upstream.
Commit 172b2386ed16 ("KVM: x86: fix missed hardware breakpoints",
2016-02-10) worked around a case where the debug registers are not loaded
correctly on preemption and on the first entry to KVM_RUN.
However, Xiao Guangrong pointed out that the root cause must be that
KVM_DEBUGREG_BP_ENABLED is not being set correctly. This can indeed
happen due to the lazy debug exit mechanism, which does not call
kvm_update_dr7. Fix it by replacing the existing loop (more or less
equivalent to kvm_update_dr0123) with calls to all the kvm_update_dr*
functions.
Fixes: 172b2386ed16a9143d9a456aae5ec87275c61489
Reviewed-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kvm/x86.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2736,7 +2736,6 @@ void kvm_arch_vcpu_load(struct kvm_vcpu
}
kvm_make_request(KVM_REQ_STEAL_UPDATE, vcpu);
- vcpu->arch.switch_db_regs |= KVM_DEBUGREG_RELOAD;
}
void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
@@ -6545,12 +6544,12 @@ static int vcpu_enter_guest(struct kvm_v
* KVM_DEBUGREG_WONT_EXIT again.
*/
if (unlikely(vcpu->arch.switch_db_regs & KVM_DEBUGREG_WONT_EXIT)) {
- int i;
-
WARN_ON(vcpu->guest_debug & KVM_GUESTDBG_USE_HW_BP);
kvm_x86_ops->sync_dirty_debug_regs(vcpu);
- for (i = 0; i < KVM_NR_DB_REGS; i++)
- vcpu->arch.eff_db[i] = vcpu->arch.db[i];
+ kvm_update_dr0123(vcpu);
+ kvm_update_dr6(vcpu);
+ kvm_update_dr7(vcpu);
+ vcpu->arch.switch_db_regs &= ~KVM_DEBUGREG_RELOAD;
}
/*
@@ -0,0 +1,56 @@
From 2680d6da455b636dd006636780c0f235c6561d70 Mon Sep 17 00:00:00 2001
From: Owen Hofmann <osh@google.com>
Date: Tue, 1 Mar 2016 13:36:13 -0800
Subject: kvm: x86: Update tsc multiplier on change.
From: Owen Hofmann <osh@google.com>
commit 2680d6da455b636dd006636780c0f235c6561d70 upstream.
vmx.c writes the TSC_MULTIPLIER field in vmx_vcpu_load, but only when a
vcpu has migrated physical cpus. Record the last value written and
update in vmx_vcpu_load on any change, otherwise a cpu migration must
occur for TSC frequency scaling to take effect.
Fixes: ff2c3a1803775cc72dc6f624b59554956396b0ee
Signed-off-by: Owen Hofmann <osh@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kvm/vmx.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -595,6 +595,8 @@ struct vcpu_vmx {
/* Support for PML */
#define PML_ENTITY_NUM 512
struct page *pml_pg;
+
+ u64 current_tsc_ratio;
};
enum segment_cache_field {
@@ -2062,14 +2064,16 @@ static void vmx_vcpu_load(struct kvm_vcp
rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
- /* Setup TSC multiplier */
- if (cpu_has_vmx_tsc_scaling())
- vmcs_write64(TSC_MULTIPLIER,
- vcpu->arch.tsc_scaling_ratio);
-
vmx->loaded_vmcs->cpu = cpu;
}
+ /* Setup TSC multiplier */
+ if (kvm_has_tsc_control &&
+ vmx->current_tsc_ratio != vcpu->arch.tsc_scaling_ratio) {
+ vmx->current_tsc_ratio = vcpu->arch.tsc_scaling_ratio;
+ vmcs_write64(TSC_MULTIPLIER, vmx->current_tsc_ratio);
+ }
+
vmx_vcpu_pi_load(vcpu, cpu);
}
@@ -1,34 +0,0 @@
From 4633dfc32c0019bed2996de9bbdbe7f3b518a44e Mon Sep 17 00:00:00 2001
From: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Date: Thu, 8 Oct 2015 19:20:14 +0530
Subject: mac80211: Fix hwflags debugfs file format
From: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
commit 4633dfc32c0019bed2996de9bbdbe7f3b518a44e upstream.
Commit 30686bf7f5b3 ("mac80211: convert HW flags to unsigned long
bitmap") accidentally removed the newline delimiter from the hwflags
debugfs file. Fix this by adding back the newline between the HW flags.
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
[fix commit log]
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/mac80211/debugfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -148,7 +148,7 @@ static ssize_t hwflags_read(struct file
for (i = 0; i < NUM_IEEE80211_HW_FLAGS; i++) {
if (test_bit(i, local->hw.flags))
- pos += scnprintf(pos, end - pos, "%s",
+ pos += scnprintf(pos, end - pos, "%s\n",
hw_flag_names[i]);
}
@@ -0,0 +1,49 @@
From 0178fd7dcc4451fcb90bec5e91226586962478d2 Mon Sep 17 00:00:00 2001
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Sun, 28 Feb 2016 17:35:59 +0200
Subject: mips/kvm: fix ioctl error handling
From: Michael S. Tsirkin <mst@redhat.com>
commit 0178fd7dcc4451fcb90bec5e91226586962478d2 upstream.
Returning directly whatever copy_to_user(...) or copy_from_user(...)
returns may not do the right thing if there's a pagefault:
copy_to_user/copy_from_user return the number of bytes not copied in
this case, but ioctls need to return -EFAULT instead.
Fix up kvm on mips to do
return copy_to_user(...)) ? -EFAULT : 0;
and
return copy_from_user(...)) ? -EFAULT : 0;
everywhere.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/mips/kvm/mips.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/mips/kvm/mips.c
+++ b/arch/mips/kvm/mips.c
@@ -702,7 +702,7 @@ static int kvm_mips_get_reg(struct kvm_v
} else if ((reg->id & KVM_REG_SIZE_MASK) == KVM_REG_SIZE_U128) {
void __user *uaddr = (void __user *)(long)reg->addr;
- return copy_to_user(uaddr, vs, 16);
+ return copy_to_user(uaddr, vs, 16) ? -EFAULT : 0;
} else {
return -EINVAL;
}
@@ -732,7 +732,7 @@ static int kvm_mips_set_reg(struct kvm_v
} else if ((reg->id & KVM_REG_SIZE_MASK) == KVM_REG_SIZE_U128) {
void __user *uaddr = (void __user *)(long)reg->addr;
- return copy_from_user(vs, uaddr, 16);
+ return copy_from_user(vs, uaddr, 16) ? -EFAULT : 0;
} else {
return -EINVAL;
}

Some files were not shown because too many files have changed in this diff Show More