195 Commits

Author SHA1 Message Date
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
Ertuğrul Erata 35a0a030e4 Merge pull request #152 from ertugerata/master
alfa6 Lost Cat coming...
2015-10-30 18:30:29 +02:00
Ertuğrul Erata e9775a3bbe alfa6 Lost Cat coming... 2015-10-30 19:14:10 +03:00
Ertuğrul Erata 4275f9c4de Merge pull request #151 from ertugerata/kernel-4.2
kernel core drivers rebuild
2015-10-30 10:43:17 +02:00
Ertuğrul Erata bc7c0e3e85 Merge branch 'master' of github.com:pisilinux/core into kernel-4.2 2015-10-30 11:42:55 +03:00
Ertuğrul Erata 868a60d987 kernel core drivers rebusil 2015-10-30 11:41:50 +03:00
Ertuğrul Erata 3d9924545f cpupowertools update 2015-10-30 11:29:34 +03:00
Ertuğrul Erata 49f8b5b994 Merge pull request #150 from ertugerata/kernel-4.2
work for kernel-4.2.5
2015-10-30 10:27:18 +02:00
Ertuğrul Erata 3c6914dc45 work for kernel-4.2.5 2015-10-30 11:07:13 +03:00
Ertuğrul Erata f7b4ac46dd Merge pull request #149 from ertugerata/master
index 27EKİM
2015-10-28 08:06:37 +02:00
Ertuğrul Erata 1e7f038722 index 27EKİM 2015-10-27 21:26:46 +02:00
Ertuğrul Erata 7325ac08a4 Merge pull request #148 from ertugerata/master
xz version bump to 5.2.2
2015-10-27 20:23:45 +02:00
Ertuğrul Erata 7f536311c3 xz version bump to 5.2.2 2015-10-27 21:23:40 +02:00
Ertuğrul Erata d261763baa Merge pull request #147 from ertugerata/master
less update to 481
2015-10-27 20:09:21 +02:00
Ertuğrul Erata 66b853ba71 less update to 481 2015-10-27 21:09:28 +02:00
Ertuğrul Erata d821d9bb9f timezone update 2015-10-27 21:06:13 +02:00
Ertuğrul Erata 0be7336de0 Merge pull request #146 from ertugerata/master
timezone update
2015-10-27 20:06:15 +02:00
Ertuğrul Erata 9264a817df Merge pull request #145 from ertugerata/master
man-db update
2015-10-27 20:02:36 +02:00
Ertuğrul Erata c662edfc4f man-db verbump to 2.7.4 2015-10-27 20:57:44 +02:00
Ertuğrul Erata 563ce62ad3 man-db verbump to 2.7.3 2015-10-27 20:55:15 +02:00
Ertuğrul Erata f4579d8653 Merge pull request #144 from ertugerata/master
gettext update to 0.19.6
2015-10-27 19:44:37 +02:00
Ertuğrul Erata 313a593949 gettext update to 0.9.6 2015-10-27 20:44:13 +02:00
Ertuğrul Erata 9d89887889 Merge pull request #143 from ertugerata/master
file verbump to 5.25
2015-10-27 19:40:23 +02:00
Ertuğrul Erata 420e84085a file verbump to 5.25 2015-10-27 20:40:14 +02:00
Ertuğrul Erata 7f686b8b0c Merge pull request #142 from ertugerata/master
pkgconfig verbump
2015-10-27 19:34:26 +02:00
Ertuğrul Erata 0a99489ee3 pkgconfig verbump 2015-10-27 20:34:14 +02:00
Ertuğrul Erata 5ae938f433 change date 2015-10-27 11:30:58 +02:00
Ertuğrul Erata 0cb779b987 Merge pull request #141 from ertugerata/master
change date
2015-10-27 10:32:04 +02:00
Ertuğrul Erata e7d6f04bce Merge pull request #140 from ertugerata/kernel-4.2
Kernel 4.2.4
2015-10-26 20:00:59 +02:00
Ertuğrul Erata 18c28e76cb index 26EKİM 2015-10-26 20:50:46 +02:00
Ertuğrul Erata baef2ac9e8 tools and drivers fr kernel-4.2.24 2015-10-26 20:49:44 +02:00
Ertuğrul Erata 0f06831c08 add config and disable btrfs patch. 2015-10-26 16:26:08 +02:00
Ertuğrul Erata 677e821c37 add patch 2015-10-26 16:15:22 +02:00
Ertuğrul Erata 01bac5e427 works for kernel-4.2.4 2015-10-26 16:11:53 +02:00
Ertuğrul Erata bafa03ea9c Merge branch 'master' into kernel-4.2 2015-10-24 20:07:50 +03:00
Ertuğrul Erata 9cd82d1a1f Merge pull request #139 from ertugerata/master
update to util-linux-2-27
2015-10-09 23:19:44 +03:00
Ertuğrul Erata 56f85df99b update to util-linux-2.27 2015-10-09 23:09:20 +03:00
Ertuğrul Erata 7c816ff9a7 Merge branch 'master' of github.com:pisilinux/core 2015-10-09 23:05:57 +03:00
Ertuğrul Erata 67950949e7 Merge pull request #138 from ertugerata/master
update to dbus-1.10
2015-10-09 23:05:55 +03:00
Ertuğrul Erata a5ce2d2dac update to dbus-1.10 2015-10-09 23:05:20 +03:00
Ertuğrul Erata c0b2d3ce7e Merge pull request #136 from ertugerata/master
index 5EKİM
2015-10-05 22:35:40 +03:00
Ertuğrul Erata 6093e77488 index 5EKİM 2015-10-05 22:33:52 +03:00
Ertuğrul Erata 4264d48256 index 5EKİM 2015-10-05 22:31:00 +03:00
Ertuğrul Erata cb8749375b Merge pull request #135 from ertugerata/kernel-4.2
Kernel 4.2.3
2015-10-05 22:23:06 +03:00
Ertuğrul Erata 80dff6ca70 modules build 2015-10-05 22:22:34 +03:00
Ertuğrul Erata 20a2d0346e fix 2015-10-05 20:26:08 +03:00
Ertuğrul Erata dcecaafaea works for kernel-4.2.3 2015-10-04 21:51:25 +03:00
Ertuğrul Erata efcda70676 pisi index 04EKİM 2015-10-04 18:33:23 +03:00
Ertuğrul Erata 0d0e105512 Merge pull request #132 from ertugerata/master
opps openssl update...
2015-10-04 18:31:37 +03:00
Ertuğrul Erata 024f73d378 opps openssl update... 2015-10-02 23:31:18 +03:00
Ertuğrul Erata 6319480a41 Merge pull request #131 from ertugerata/master
index . 02EKIM
2015-10-02 22:12:56 +03:00
Ertuğrul Erata 37accb00ae index . 02EKIM 2015-10-02 22:11:50 +03:00
Ertuğrul Erata 1144c5371a Merge pull request #130 from ertugerata/master
for fix unmounted other system detect.
2015-10-02 11:39:05 +03:00
Ertuğrul Erata 100d59b4a9 for fix unmounted other system detect. 2015-10-02 11:26:27 +03:00
Ertuğrul Erata 1df3fc1653 Merge pull request #128 from ertugerata/kernel-4.2
linux-firmware update
2015-10-01 15:17:45 +03:00
Ertuğrul Erata 8a6b445a06 linux-firmware update 2015-10-01 15:07:54 +03:00
Ertuğrul Erata 49fde58aa4 Merge pull request #127 from ertugerata/kernel-4.2
Kernel 4.2.2 and modules fix build.
2015-10-01 14:15:33 +03:00
Ertuğrul Erata 591cc458dc fix build kernel-4.2 2015-10-01 13:58:34 +03:00
Ertuğrul Erata 25b9564863 works for kernel 4.2.2 2015-10-01 09:26:26 +03:00
Ertuğrul Erata 262545623e Merge pull request #125 from ertugerata/4.1.8
Kernel-4.1.8 update
2015-09-23 09:58:28 +03:00
ertugerata 50e396672c cpupowertools update 2015-09-23 09:54:56 +03:00
ertugerata 02d9e68d77 sil 2015-09-23 01:07:31 +03:00
ertugerata f6f9670c6d new kernel 2015-09-23 01:05:31 +03:00
Ertuğrul Erata d108b2c433 Merge pull request #117 from ertugerata/kernel-4.1.7
cpupowertools update
2015-09-18 21:07:03 +03:00
ertugerata 4eafb8f2d2 cpupowertools update 2015-09-18 21:06:40 +03:00
Ertuğrul Erata 4a6c075c98 Merge pull request #116 from ertugerata/kernel-4.1.7
kernel-4.17 and drivers
2015-09-18 21:05:04 +03:00
ertugerata 7cb1e7e598 kernel-4.17 and drivers 2015-09-18 20:33:36 +03:00
Ertuğrul Erata d5c7cb19f2 Merge pull request #115 from ertugerata/master
gobject-introspection-devel fix deps.
2015-09-14 22:43:28 +03:00
ertugerata 6386754576 index 14EYL 2015-09-14 22:43:06 +03:00
ertugerata 3c279170f9 gobject-introspection-devel fix deps. 2015-09-12 12:10:16 +03:00
Ertuğrul Erata c03dea7ff0 Merge pull request #114 from ertugerata/master
index 12EYL
2015-09-12 00:59:58 +03:00
ertugerata fd6e29fe4a index 12EYL 2015-09-12 00:58:58 +03:00
Ertuğrul Erata 1848b1e653 Merge pull request #113 from ertugerata/master
linux-firmware update
2015-09-06 22:40:23 +03:00
ertugerata b5d49fe281 linux-firmware update 2015-09-06 22:28:57 +03:00
Ertuğrul Erata 627cd0fc54 Merge pull request #112 from ertugerata/master
index 6EYL
2015-09-06 10:00:49 +03:00
ertugerata b6a4fa8061 index 6EYL 2015-09-06 10:00:15 +03:00
Ertuğrul Erata cacc8f47d0 Merge pull request #111 from ertugerata/master
tar fix builddep.
2015-09-06 09:58:50 +03:00
ertugerata a123303d1f tar fix builddep. 2015-09-06 09:57:44 +03:00
Ertuğrul Erata 607f0679c1 Merge pull request #110 from ertugerata/kernel-4.1.6
Kernel 4.1.6 add new patches...
2015-09-06 00:59:18 +03:00
ertugerata 1fbe342660 fix date 2015-09-06 00:26:36 +03:00
ertugerata 3db0c8c92d add new patches.in 4.1.6 2015-09-05 23:42:50 +03:00
Ertuğrul Erata 612cd30fd6 Merge pull request #109 from ertugerata/master
pisi fix configdir in kde5 close #108
2015-08-31 13:47:53 +03:00
Ertuğrul Erata 69c616db35 pisi fix configdir in kde5 close #108 2015-08-31 13:45:27 +03:00
144 changed files with 57160 additions and 94319 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
- [ ] 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
- [ ] 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ı
- [ ] 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
-1
View File
@@ -186,7 +186,6 @@
<Package>qedje</Package>
<Package>ushare</Package>
<Package>udev-32bit</Package>
<Package>kde-l10n-fa</Package>
<Package>kde-l10n-si</Package>
<Package>kde-l10n-si-doc</Package>
<Package>kde-l10n-tg</Package>
+1 -1
View File
@@ -16,7 +16,7 @@ import lzma
import piksemel
pisirepouri = "http://ciftlik.pisilinux.org/pisi-2.0/pisi-index.xml.xz"
svnrepouri = "https://github.com/pisilinux/core/raw/master/pisi-index.xml.xz"
svnrepouri = "https://github.com/ertugerata/core/raw/master/pisi-index.xml.xz"
def getIndex(uri):
try:
+26 -9
View File
@@ -17,8 +17,8 @@
<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 e10097aa1b4ab3f4ed96b05142868f093a009643 2015-07-16 -->
<Archive sha1sum="0d59830cabba714840a23b2a359cad8d172fd0eb" type="tarbz2">http://source.pisilinux.org/1.0/linux-firmware/linux-firmware-20150716.tar.bz2</Archive>
<!-- linux-firmware commit: a109a8ffb655aad9341b96c3b83eebad19b06ada 2015-11-27 -->
<Archive sha1sum="9bf6021a873c12fe1b4c2dd2525c17b177335a75" type="tarbz2">http://source.pisilinux.org/1.0/linux-firmware/linux-firmware-20151127.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>
@@ -30,14 +30,10 @@
<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>
<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>
</AdditionalFiles>
<!--<BuildDependencies>
<Dependency>rpm2targz</Dependency>
</BuildDependencies>-->
<Patches>
<!-- Remove all patches, all dead :) -->
</Patches>
</Source>
<Package>
@@ -52,6 +48,27 @@
</Package>
<History>
<Update release="20">
<Date>2015-12-02</Date>
<Version>20151127</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<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>
+72 -2
View File
@@ -11,7 +11,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.1.6">kernel-module-headers</Dependency>
<Dependency version="4.4.0">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 +20,7 @@
<Package>
<Name>module-bbswitch</Name>
<RuntimeDependencies>
<Dependency version="4.1.6">kernel</Dependency>
<Dependency version="4.4.0">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -34,6 +34,76 @@
</Package>
<History>
<Update release="36">
<Date>2016-01-16</Date>
<Version>0.8</Version>
<Comment>Rebuild.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="35">
<Date>2015-12-13</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.3.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="35">
<Date>2015-12-01</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="34">
<Date>2015-11-11</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.2.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<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>
@@ -0,0 +1,29 @@
From b14ac6e4b871b5e15f63389ba63d1fc23a54c58b Mon Sep 17 00:00:00 2001
From: Tim Gardner <tim.gardner@canonical.com>
Date: Tue, 4 Aug 2015 09:02:10 -0600
Subject: [PATCH] cfg80211_disconnected
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
---
bcmwl-6.30.223.248+bdcom/src/src/wl/sys/wl_cfg80211_hybrid.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
index ea0726f..0131f01 100644
--- a/src/wl/sys/wl_cfg80211_hybrid.c
+++ b/src/wl/sys/wl_cfg80211_hybrid.c
@@ -2047,7 +2047,11 @@ wl_notify_connect_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
}
else if ((event == WLC_E_LINK && ~(flags & WLC_EVENT_MSG_LINK)) ||
event == WLC_E_DEAUTH_IND || event == WLC_E_DISASSOC_IND) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
cfg80211_disconnected(ndev, 0, NULL, 0, GFP_KERNEL);
+#else
+ cfg80211_disconnected(ndev, 0, NULL, 0, false, GFP_KERNEL);
+#endif
clear_bit(WL_STATUS_CONNECTED, &wl->status);
wl_link_down(wl);
wl_init_prof(wl->profile);
--
2.5.0
@@ -0,0 +1,27 @@
Description: Fixing null pointer crash
Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773713
Bug-Ubuntu: https://launchpad.net/bugs/1415880
Last-Update: 2015-08-18
---
src/wl/sys/wl_linux.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
index 860b935..295156f 100644
--- a/src/wl/sys/wl_linux.c
+++ b/src/wl/sys/wl_linux.c
@@ -2157,8 +2157,8 @@ wl_start(struct sk_buff *skb, struct net_device *dev)
wlif = WL_DEV_IF(dev);
wl = WL_INFO(dev);
+ skb->prev = NULL;
if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
- skb->prev = NULL;
TXQ_LOCK(wl);
--
1.9.1
+74 -2
View File
@@ -15,7 +15,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.1.6">kernel-module-headers</Dependency>
<Dependency version="4.4.0">kernel-module-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">patch/linux-40.patch</Patch>
@@ -24,13 +24,15 @@
<Patch level="1">patch/gcc.patch</Patch>
<Patch level="1">patch/wlan.patch</Patch>
<Patch level="1">patch/broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch</Patch>
<Patch>patch/0018-cfg80211_disconnected.patch</Patch>
<!--Patch>patch/0019-broadcom-sta-6.30.223.248-3.18-null-pointer-fix.patch</Patch-->
</Patches>
</Source>
<Package>
<Name>module-broadcom-wl</Name>
<RuntimeDependencies>
<Dependency version="4.1.6">kernel</Dependency>
<Dependency version="4.4.0">kernel</Dependency>
<Dependency release="current">module-broadcom-wl-userspace</Dependency>
</RuntimeDependencies>
<Replaces>
@@ -62,6 +64,76 @@
</Package>
<History>
<Update release="57">
<Date>2016-01-16</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="56">
<Date>2015-12-13</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.3.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="55">
<Date>2015-12-01</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="54">
<Date>2015-11-11</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.2.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<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>
@@ -12,16 +12,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="82194515516139801fdc690198495b043d1c9cbe" type="tarxz">http://source.pisilinux.org/1.0/module-virtualbox-guest-4.3.28.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.1.6">kernel-module-headers</Dependency>
<Dependency version="4.4.0">kernel-module-headers</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>module-virtualbox-guest</Name>
<RuntimeDependencies>
<Dependency version="4.1.6">kernel</Dependency>
<Dependency version="4.4.0">kernel</Dependency>
<Dependency>baselayout</Dependency>
<Dependency version="current">module-virtualbox-guest-userspace</Dependency>
</RuntimeDependencies>
@@ -52,10 +52,80 @@
</Package>
<History>
<Update release="59">
<Date>2016-01-16</Date>
<Version>5.0.12</Version>
<Comment>Rebuild</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="58">
<Date>2015-12-30</Date>
<Version>5.0.12</Version>
<Comment>Verbump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="57">
<Date>2015-12-13</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.3.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="56">
<Date>2015-12-01</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="55">
<Date>2015-11-11</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.2.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<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.6.</Comment>
<Comment>Rebuild for kernel-4.1.7.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
@@ -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);
+83 -3
View File
@@ -12,16 +12,19 @@
<IsA>driver</IsA>
<Summary>Kernel modules for VirtualBox</Summary>
<Description>This package provides the kernel support for VirtualBox.</Description>
<Archive sha1sum="8850ebc24e00640835b682a5f8bbc8f05313d2d7" type="tarxz">http://source.pisilinux.org/1.0/module-virtualbox-4.3.28.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.1.6">kernel-module-headers</Dependency>
<Dependency version="4.4.0">kernel-module-headers</Dependency>
</BuildDependencies>
<!--Patches>
<Patch>vbox_linux-4.3.diff</Patch>
</Patches-->
</Source>
<Package>
<Name>module-virtualbox</Name>
<RuntimeDependencies>
<Dependency version="4.1.6">kernel</Dependency>
<Dependency version="4.4.0">kernel</Dependency>
<Dependency version="current">module-virtualbox-userspace</Dependency>
</RuntimeDependencies>
<Files>
@@ -47,6 +50,83 @@
</Package>
<History>
<Update release="61">
<Date>2016-01-16</Date>
<Version>5.0.12</Version>
<Comment>Rebuild.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="60">
<Date>2015-12-30</Date>
<Version>5.0.12</Version>
<Comment>Verbump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="59">
<Date>2015-12-13</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.3.2.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="58">
<Date>2015-12-01</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="57">
<Date>2015-11-11</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.2.6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<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>
+1
View File
@@ -14,6 +14,7 @@ KDIR = kerneltools.getKernelVersion()
def build():
shelltools.system("patch -p1 < ndiswrapper-1.59.patch")
shelltools.system("patch -p1 < kernel-4.2.patch")
autotools.make("-C driver KVERS_UNAME=%s" % KDIR)
@@ -0,0 +1,33 @@
diff -Npur "ndiswrapper-1 .59.orig/driver/loader.c" "ndiswrapper-1 .59/driver/loader.c"
--- "ndiswrapper-1 .59.orig/driver/loader.c" 2013-11-28 20:42:35.000000000 +0100
+++ "ndiswrapper-1 .59/driver/loader.c" 2015-08-01 18:25:08.302141265 +0200
@@ -22,6 +22,7 @@
#include <linux/kmod.h>
#include <linux/miscdevice.h>
#include <asm/uaccess.h>
+#include <linux/vmalloc.h>
/*
Network adapter: ClassGuid = {4d36e972-e325-11ce-bfc1-08002be10318}
diff -Npur "ndiswrapper-1 .59.orig/driver/ntoskernel.c" "ndiswrapper-1 .59/driver/ntoskernel.c"
--- "ndiswrapper-1 .59.orig/driver/ntoskernel.c" 2013-11-28 20:42:36.000000000 +0100
+++ "ndiswrapper-1 .59/driver/ntoskernel.c" 2015-08-01 18:24:55.895942032 +0200
@@ -19,6 +19,7 @@
#include "pnp.h"
#include "loader.h"
#include "ntoskernel_exports.h"
+#include <linux/vmalloc.h>
/* MDLs describe a range of virtual address with an array of physical
* pages right after the header. For different ranges of virtual
diff -Npur "ndiswrapper-1 .59.orig/driver/pe_linker.c" "ndiswrapper-1 .59/driver/pe_linker.c"
--- "ndiswrapper-1 .59.orig/driver/pe_linker.c" 2013-11-28 20:42:36.000000000 +0100
+++ "ndiswrapper-1 .59/driver/pe_linker.c" 2015-08-01 18:28:37.992752176 +0200
@@ -25,6 +25,7 @@
//#define DEBUGLINKER 2
#include "ntoskernel.h"
+#include <linux/vmalloc.h>
#endif
+66 -2
View File
@@ -15,20 +15,21 @@
<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.1.6">kernel-module-headers</Dependency>
<Dependency version="4.4.0">kernel-module-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch>support_kernel-4.0.patch</Patch>
</Patches>
<AdditionalFiles>
<AdditionalFile target="ndiswrapper-1.59.patch">ndiswrapper-1.59.patch</AdditionalFile>
<AdditionalFile target="kernel-4.2.patch">kernel-4.2.patch</AdditionalFile>
</AdditionalFiles>
</Source>
<Package>
<Name>ndiswrapper</Name>
<RuntimeDependencies>
<Dependency version="4.1.6">kernel</Dependency>
<Dependency version="4.4.0">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -44,6 +45,69 @@
</Package>
<History>
<Update release="11">
<Date>2016-01-16</Date>
<Version>1.59</Version>
<Comment>Rebuild.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="10">
<Date>2015-12-13</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.3.2.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2015-12-01</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.2.6.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2014-11-11</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.2.6.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<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>
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -15,66 +15,66 @@ Signed-off-by: Thomas Backlund <tmb@mageia.org>
arch/powerpc/Kconfig | 2 ++
arch/sparc/Kconfig | 2 ++
arch/x86/Kconfig | 2 ++
scripts/kconfig/Makefile | 31 +++++++++++++++++--------------
8 files changed, 29 insertions(+), 15 deletions(-)
scripts/kconfig/Makefile | 33 ++++++++++++++++++---------------
8 files changed, 30 insertions(+), 16 deletions(-)
diff -Nurp linux-4.1/arch/alpha/Kconfig linux-4.1-3rd/arch/alpha/Kconfig
--- linux-4.1/arch/alpha/Kconfig 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/arch/alpha/Kconfig 2015-06-25 20:44:03.221647317 +0200
diff -Nurp linux-4.2.2/arch/alpha/Kconfig linux-4.2.2-3rd/arch/alpha/Kconfig
--- linux-4.2.2/arch/alpha/Kconfig 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-3rd/arch/alpha/Kconfig 2015-09-29 23:02:44.024347272 +0300
@@ -750,3 +750,4 @@ source "crypto/Kconfig"
source "lib/Kconfig"
+source "3rdparty/Kconfig"
diff -Nurp linux-4.1/arch/ia64/Kconfig linux-4.1-3rd/arch/ia64/Kconfig
--- linux-4.1/arch/ia64/Kconfig 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/arch/ia64/Kconfig 2015-06-25 20:44:03.231647227 +0200
@@ -636,3 +636,5 @@ source "lib/Kconfig"
diff -Nurp linux-4.2.2/arch/ia64/Kconfig linux-4.2.2-3rd/arch/ia64/Kconfig
--- linux-4.2.2/arch/ia64/Kconfig 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-3rd/arch/ia64/Kconfig 2015-09-29 23:02:44.024347272 +0300
@@ -613,3 +613,5 @@ source "lib/Kconfig"
config IOMMU_HELPER
def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
+
+source "3rdparty/Kconfig"
diff -Nurp linux-4.1/arch/mips/Kconfig linux-4.1-3rd/arch/mips/Kconfig
--- linux-4.1/arch/mips/Kconfig 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/arch/mips/Kconfig 2015-06-25 20:44:03.231647227 +0200
@@ -2893,3 +2893,5 @@ source "crypto/Kconfig"
diff -Nurp linux-4.2.2/arch/mips/Kconfig linux-4.2.2-3rd/arch/mips/Kconfig
--- linux-4.2.2/arch/mips/Kconfig 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-3rd/arch/mips/Kconfig 2015-09-29 23:02:44.024347272 +0300
@@ -2944,3 +2944,5 @@ source "crypto/Kconfig"
source "lib/Kconfig"
source "arch/mips/kvm/Kconfig"
+
+source "3rdparty/Kconfig"
diff -Nurp linux-4.1/arch/powerpc/Kconfig linux-4.1-3rd/arch/powerpc/Kconfig
--- linux-4.1/arch/powerpc/Kconfig 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/arch/powerpc/Kconfig 2015-06-25 20:44:03.231647227 +0200
@@ -1090,3 +1090,5 @@ config PPC_LIB_RHEAP
diff -Nurp linux-4.2.2/arch/powerpc/Kconfig linux-4.2.2-3rd/arch/powerpc/Kconfig
--- linux-4.2.2/arch/powerpc/Kconfig 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-3rd/arch/powerpc/Kconfig 2015-09-29 23:02:44.025347276 +0300
@@ -1092,3 +1092,5 @@ config PPC_LIB_RHEAP
bool
source "arch/powerpc/kvm/Kconfig"
+
+source "3rdparty/Kconfig"
diff -Nurp linux-4.1/arch/sparc/Kconfig linux-4.1-3rd/arch/sparc/Kconfig
--- linux-4.1/arch/sparc/Kconfig 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/arch/sparc/Kconfig 2015-06-25 20:44:03.231647227 +0200
diff -Nurp linux-4.2.2/arch/sparc/Kconfig linux-4.2.2-3rd/arch/sparc/Kconfig
--- linux-4.2.2/arch/sparc/Kconfig 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-3rd/arch/sparc/Kconfig 2015-09-29 23:02:44.025347276 +0300
@@ -569,3 +569,5 @@ source "security/Kconfig"
source "crypto/Kconfig"
source "lib/Kconfig"
+
+source "3rdparty/Kconfig"
diff -Nurp linux-4.1/arch/x86/Kconfig linux-4.1-3rd/arch/x86/Kconfig
--- linux-4.1/arch/x86/Kconfig 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/arch/x86/Kconfig 2015-06-25 20:44:03.231647227 +0200
@@ -2594,3 +2594,5 @@ source "crypto/Kconfig"
diff -Nurp linux-4.2.2/arch/x86/Kconfig linux-4.2.2-3rd/arch/x86/Kconfig
--- linux-4.2.2/arch/x86/Kconfig 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-3rd/arch/x86/Kconfig 2015-09-29 23:02:44.025347276 +0300
@@ -2601,3 +2601,5 @@ source "crypto/Kconfig"
source "arch/x86/kvm/Kconfig"
source "lib/Kconfig"
+
+source "3rdparty/Kconfig"
diff -Nurp linux-4.1/Makefile linux-4.1-3rd/Makefile
--- linux-4.1/Makefile 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/Makefile 2015-06-25 20:44:03.231647227 +0200
@@ -556,7 +556,7 @@ scripts: scripts_basic include/config/au
diff -Nurp linux-4.2.2/Makefile linux-4.2.2-3rd/Makefile
--- linux-4.2.2/Makefile 2015-09-29 22:13:44.743650710 +0300
+++ linux-4.2.2-3rd/Makefile 2015-09-29 23:02:44.026347280 +0300
@@ -546,7 +546,7 @@ scripts: scripts_basic include/config/au
# Objects we will link into vmlinux / subdirs we need to visit
init-y := init/
@@ -83,9 +83,9 @@ diff -Nurp linux-4.1/Makefile linux-4.1-3rd/Makefile
net-y := net/
libs-y := lib/
core-y := usr/
diff -Nurp linux-4.1/scripts/kconfig/Makefile linux-4.1-3rd/scripts/kconfig/Makefile
--- linux-4.1/scripts/kconfig/Makefile 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-3rd/scripts/kconfig/Makefile 2015-06-25 20:47:50.109596717 +0200
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_
@@ -131,7 +131,7 @@ diff -Nurp linux-4.1/scripts/kconfig/Makefile linux-4.1-3rd/scripts/kconfig/Make
PHONY += oldnoconfig savedefconfig defconfig
@@ -88,12 +88,12 @@ PHONY += oldnoconfig savedefconfig defco
# oldnoconfig is an alias of olddefconfig, because people already are dependent
# on its behavior(sets new symbols to their default value but not 'n') with the
# on its behavior (sets new symbols to their default value but not 'n') with the
# counter-intuitive name.
-oldnoconfig: olddefconfig
+oldnoconfig: olddefconfig 3rdparty/Makefile
@@ -144,9 +144,9 @@ diff -Nurp linux-4.1/scripts/kconfig/Makefile linux-4.1-3rd/scripts/kconfig/Make
+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.1/scripts/kconfig/Makefile linux-4.1-3rd/scripts/kconfig/Make
$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@)
@@ -112,12 +112,12 @@ 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
@@ -162,14 +166,18 @@ diff -Nurp linux-4.1/scripts/kconfig/Makefile linux-4.1-3rd/scripts/kconfig/Make
+kvmconfig: kvm_guest.config 3rdparty/Makefile
@:
PHONY += xenconfig
-xenconfig: xen.config
+xenconfig: xen.config 3rdparty/Makefile
@:
PHONY += tinyconfig
tinyconfig:
- $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config
+ $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config 3rdparty/Makefile
-tinyconfig:
+tinyconfig: 3rdparty/Makefile
$(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config
# Help text used by make help
help:
@@ -176,6 +176,9 @@ gconf-objs := gconf.o zconf.tab.o
@@ -186,6 +186,9 @@ gconf-objs := gconf.o zconf.tab.o
hostprogs-y := conf nconf mconf kxgettext qconf gconf
@@ -0,0 +1,30 @@
--- linux/3rdparty/ndiswrapper/loader.c.orig 2015-09-30 00:51:13.000000000 +0300
+++ linux/3rdparty/ndiswrapper/loader.c 2015-09-30 01:27:16.209213900 +0300
@@ -21,6 +21,7 @@
#include <linux/module.h>
#include <linux/kmod.h>
#include <linux/miscdevice.h>
+#include <linux/vmalloc.h>
#include <asm/uaccess.h>
/*
--- linux/3rdparty/ndiswrapper/ntoskernel.c.orig 2015-09-30 00:51:13.000000000 +0300
+++ linux/3rdparty/ndiswrapper/ntoskernel.c 2015-09-30 01:29:08.011792825 +0300
@@ -13,6 +13,7 @@
*
*/
+#include <linux/vmalloc.h>
#include "ntoskernel.h"
#include "ndis.h"
#include "usb.h"
--- linux/3rdparty/ndiswrapper/pe_linker.c.orig 2015-09-30 00:51:13.000000000 +0300
+++ linux/3rdparty/ndiswrapper/pe_linker.c 2015-09-30 01:30:49.965320953 +0300
@@ -19,6 +19,7 @@
#else
+#include <linux/vmalloc.h>
#include <linux/types.h>
#include <asm/errno.h>
@@ -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
@@ -1,29 +0,0 @@
Fix broken async_suspend
https://bugzilla.kernel.org/show_bug.cgi?id=81551
--- a/drivers/pci/quirks.c
+++ a/drivers/pci/quirks.c
@@ -29,6 +29,21 @@
#include "pci.h"
/*
+ * For JMicron chips, we need to disable the async_suspend method, otherwise
+ * they will hit the power-on issue when doing device resume, add one quick
+ * solution to disable the async_suspend method.
+ */
+static void pci_async_suspend_fixup(struct pci_dev *pdev)
+{
+ /*
+ * disabling the async_suspend method for JMicron chips to
+ * avoid device resuming issue.
+ */
+ device_disable_async_suspend(&pdev->dev);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, pci_async_suspend_fixup);
+
+/*
* Decoding should be disabled for a PCI device during BAR sizing to avoid
* conflict. But doing so may cause problems on host bridge and perhaps other
* key system devices. For devices that need to have mmio decoding always-on,
@@ -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/
@@ -1,68 +0,0 @@
This patch reverts:
From e6b7e41cdd8cae0591e04d9519b65470110e2d44 Mon Sep 17 00:00:00 2001
From: Chuansheng Liu <chuansheng.liu@intel.com>
Date: Mon, 1 Sep 2014 08:38:03 +0800
Subject: [PATCH] ata: Disabling the async PM for JMicron chip 363/361
in favour of the pci quirks based patch:
https://bugzilla.kernel.org/show_bug.cgi?id=81551
Signed-off-by: Thomas Backlund <tmb@mageia.org>
---
drivers/ata/ahci.c | 12 ------------
drivers/ata/pata_jmicron.c | 12 ------------
2 files changed, 24 deletions(-)
diff --git b/drivers/ata/ahci.c a/drivers/ata/ahci.c
index f7da21b..bca3d64 100644
--- b/drivers/ata/ahci.c
+++ a/drivers/ata/ahci.c
@@ -1337,18 +1337,6 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
else if (pdev->vendor == 0x1c44 && pdev->device == 0x8000)
ahci_pci_bar = AHCI_PCI_BAR_ENMOTUS;
- /*
- * The JMicron chip 361/363 contains one SATA controller and one
- * PATA controller,for powering on these both controllers, we must
- * follow the sequence one by one, otherwise one of them can not be
- * powered on successfully, so here we disable the async suspend
- * method for these chips.
- */
- if (pdev->vendor == PCI_VENDOR_ID_JMICRON &&
- (pdev->device == PCI_DEVICE_ID_JMICRON_JMB363 ||
- pdev->device == PCI_DEVICE_ID_JMICRON_JMB361))
- device_disable_async_suspend(&pdev->dev);
-
/* acquire resources */
rc = pcim_enable_device(pdev);
if (rc)
diff --git b/drivers/ata/pata_jmicron.c a/drivers/ata/pata_jmicron.c
index 47e418b..4d1a5d2 100644
--- b/drivers/ata/pata_jmicron.c
+++ a/drivers/ata/pata_jmicron.c
@@ -143,18 +143,6 @@ static int jmicron_init_one (struct pci_dev *pdev, const struct pci_device_id *i
};
const struct ata_port_info *ppi[] = { &info, NULL };
- /*
- * The JMicron chip 361/363 contains one SATA controller and one
- * PATA controller,for powering on these both controllers, we must
- * follow the sequence one by one, otherwise one of them can not be
- * powered on successfully, so here we disable the async suspend
- * method for these chips.
- */
- if (pdev->vendor == PCI_VENDOR_ID_JMICRON &&
- (pdev->device == PCI_DEVICE_ID_JMICRON_JMB363 ||
- pdev->device == PCI_DEVICE_ID_JMICRON_JMB361))
- device_disable_async_suspend(&pdev->dev);
-
return ata_pci_bmdma_init_one(pdev, ppi, &jmicron_sht, NULL, 0);
}
--
1.8.5.6
@@ -0,0 +1,49 @@
Devicetree is enabled on 32bit kernels for OLPC support,
but this causes error messages:
'Failed to find cpu0 device node' that breaks bootsplash.
https://bugs.mageia.org/show_bug.cgi?id=16655#c39
https://bugs.mageia.org/show_bug.cgi?id=17010
So hide them behind debug for cleaner boot.
Signed-off-by: Thomas Backlund <tmb@mageia.org>
--- linux/drivers/base/cacheinfo.c.orig
+++ linux/drivers/base/cacheinfo.c
@@ -53,12 +53,12 @@
return 0;
if (!cpu_dev) {
- pr_err("No cpu device for CPU %d\n", cpu);
+ pr_debug("No cpu device for CPU %d\n", cpu);
return -ENODEV;
}
np = cpu_dev->of_node;
if (!np) {
- pr_err("Failed to find cpu%d device node\n", cpu);
+ pr_debug("Failed to find cpu%d device node\n", cpu);
return -ENOENT;
}
@@ -203,7 +203,7 @@
*/
ret = cache_shared_cpu_map_setup(cpu);
if (ret) {
- pr_warn("Unable to detect cache hierarchy from DT for CPU %d\n",
+ pr_debug("Unable to detect cache hierarchy from DT for CPU %d\n",
cpu);
goto free_ci;
}
@@ -540,7 +540,7 @@
rc = cache_add_dev(cpu);
if (rc) {
free_cache_attributes(cpu);
- pr_err("error populating cacheinfo..cpu%d\n", cpu);
+ pr_debug("error populating cacheinfo..cpu%d\n", cpu);
goto out;
}
}
@@ -1,95 +0,0 @@
From 0bb979472a7401022109e81dd89d777adea58710 Mon Sep 17 00:00:00 2001
From: Jens Axboe <axboe@fb.com>
Date: Wed, 10 Jun 2015 08:01:20 -0600
Subject: cfq-iosched: fix the setting of IOPS mode on SSDs
A previous commit wanted to make CFQ default to IOPS mode on
non-rotational storage, however it did so when the queue was
initialized and the non-rotational flag is only set later on
in the probe.
Add an elevator hook that gets called off the add_disk() path,
at that point we know that feature probing has finished, and
we can reliably check for the various flags that drivers can
set.
Fixes: 41c0126b ("block: Make CFQ default to IOPS mode on SSDs")
Tested-by: Romain Francoise <romain@orebokech.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index c808ad8..d1d0cb2 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -4508,7 +4508,7 @@ static int cfq_init_queue(struct request_queue *q, struct elevator_type *e)
cfqd->cfq_slice[1] = cfq_slice_sync;
cfqd->cfq_target_latency = cfq_target_latency;
cfqd->cfq_slice_async_rq = cfq_slice_async_rq;
- cfqd->cfq_slice_idle = blk_queue_nonrot(q) ? 0 : cfq_slice_idle;
+ cfqd->cfq_slice_idle = cfq_slice_idle;
cfqd->cfq_group_idle = cfq_group_idle;
cfqd->cfq_latency = 1;
cfqd->hw_tag = -1;
@@ -4525,6 +4525,18 @@ out_free:
return ret;
}
+static void cfq_registered_queue(struct request_queue *q)
+{
+ struct elevator_queue *e = q->elevator;
+ struct cfq_data *cfqd = e->elevator_data;
+
+ /*
+ * Default to IOPS mode with no idling for SSDs
+ */
+ if (blk_queue_nonrot(q))
+ cfqd->cfq_slice_idle = 0;
+}
+
/*
* sysfs parts below -->
*/
@@ -4640,6 +4652,7 @@ static struct elevator_type iosched_cfq = {
.elevator_may_queue_fn = cfq_may_queue,
.elevator_init_fn = cfq_init_queue,
.elevator_exit_fn = cfq_exit_queue,
+ .elevator_registered_fn = cfq_registered_queue,
},
.icq_size = sizeof(struct cfq_io_cq),
.icq_align = __alignof__(struct cfq_io_cq),
diff --git a/block/elevator.c b/block/elevator.c
index 59794d0..5f04527 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -810,6 +810,8 @@ int elv_register_queue(struct request_queue *q)
}
kobject_uevent(&e->kobj, KOBJ_ADD);
e->registered = 1;
+ if (e->type->ops.elevator_registered_fn)
+ e->type->ops.elevator_registered_fn(q);
}
return error;
}
diff --git a/include/linux/elevator.h b/include/linux/elevator.h
index 45a9147..638b324 100644
--- a/include/linux/elevator.h
+++ b/include/linux/elevator.h
@@ -39,6 +39,7 @@ typedef void (elevator_deactivate_req_fn) (struct request_queue *, struct reques
typedef int (elevator_init_fn) (struct request_queue *,
struct elevator_type *e);
typedef void (elevator_exit_fn) (struct elevator_queue *);
+typedef void (elevator_registered_fn) (struct request_queue *);
struct elevator_ops
{
@@ -68,6 +69,7 @@ struct elevator_ops
elevator_init_fn *elevator_init_fn;
elevator_exit_fn *elevator_exit_fn;
+ elevator_registered_fn *elevator_registered_fn;
};
#define ELV_NAME_MAX (16)
--
cgit v0.10.2
@@ -2,7 +2,7 @@
fs/aufs/Kconfig | 2 +-
fs/dcache.c | 1 +
fs/file_table.c | 2 ++
fs/inode.c | 2 ++
fs/inode.c | 1 +
fs/namespace.c | 2 ++
fs/notify/group.c | 4 ++++
fs/notify/mark.c | 4 ++++
@@ -12,11 +12,11 @@
security/commoncap.c | 2 ++
security/device_cgroup.c | 2 ++
security/security.c | 10 ++++++++++
13 files changed, 36 insertions(+), 1 deletion(-)
13 files changed, 35 insertions(+), 1 deletion(-)
diff -Nurp linux-4.1-aufs4/fs/aufs/Kconfig linux-4.1-aufs4-mod/fs/aufs/Kconfig
--- linux-4.1-aufs4/fs/aufs/Kconfig 2015-06-25 20:09:18.250319377 +0200
+++ linux-4.1-aufs4-mod/fs/aufs/Kconfig 2015-06-25 20:11:30.629136790 +0200
diff -Nurp linux-4.4-rc6.aufs/fs/aufs/Kconfig linux-4.4-rc6.aufs.mod/fs/aufs/Kconfig
--- linux-4.4-rc6.aufs/fs/aufs/Kconfig 2015-12-21 19:54:42.973923445 +0200
+++ linux-4.4-rc6.aufs.mod/fs/aufs/Kconfig 2015-12-21 19:55:29.522275768 +0200
@@ -1,5 +1,5 @@
config AUFS_FS
- bool "Aufs (Advanced multi layered unification filesystem) support"
@@ -24,10 +24,10 @@ diff -Nurp linux-4.1-aufs4/fs/aufs/Kconfig linux-4.1-aufs4-mod/fs/aufs/Kconfig
help
Aufs is a stackable unification filesystem such as Unionfs,
which unifies several directories and provides a merged single
diff -Nurp linux-4.1-aufs4/fs/dcache.c linux-4.1-aufs4-mod/fs/dcache.c
--- linux-4.1-aufs4/fs/dcache.c 2015-06-25 20:09:18.280319109 +0200
+++ linux-4.1-aufs4-mod/fs/dcache.c 2015-06-25 20:11:30.629136790 +0200
@@ -1269,6 +1269,7 @@ rename_retry:
diff -Nurp linux-4.4-rc6.aufs/fs/dcache.c linux-4.4-rc6.aufs.mod/fs/dcache.c
--- linux-4.4-rc6.aufs/fs/dcache.c 2015-12-21 19:54:42.986923543 +0200
+++ linux-4.4-rc6.aufs.mod/fs/dcache.c 2015-12-21 19:55:29.523275775 +0200
@@ -1272,6 +1272,7 @@ rename_retry:
seq = 1;
goto again;
}
@@ -35,9 +35,9 @@ diff -Nurp linux-4.1-aufs4/fs/dcache.c linux-4.1-aufs4-mod/fs/dcache.c
/*
* Search for at least 1 mount point in the dentry's subdirs.
diff -Nurp linux-4.1-aufs4/fs/file_table.c linux-4.1-aufs4-mod/fs/file_table.c
--- linux-4.1-aufs4/fs/file_table.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/fs/file_table.c 2015-06-25 23:47:57.011958835 +0200
diff -Nurp linux-4.4-rc6.aufs/fs/file_table.c linux-4.4-rc6.aufs.mod/fs/file_table.c
--- linux-4.4-rc6.aufs/fs/file_table.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/fs/file_table.c 2015-12-21 19:55:29.523275775 +0200
@@ -147,6 +147,7 @@ over:
}
return ERR_PTR(-ENFILE);
@@ -52,20 +52,12 @@ diff -Nurp linux-4.1-aufs4/fs/file_table.c linux-4.1-aufs4-mod/fs/file_table.c
}
+EXPORT_SYMBOL(put_filp);
void __init files_init(unsigned long mempages)
void __init files_init(void)
{
diff -Nurp linux-4.1-aufs4/fs/inode.c linux-4.1-aufs4-mod/fs/inode.c
--- linux-4.1-aufs4/fs/inode.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/fs/inode.c 2015-06-25 22:45:45.000000000 +0200
@@ -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
@@ -1575,6 +1576,7 @@ static int update_time(struct inode *ino
diff -Nurp linux-4.4-rc6.aufs/fs/inode.c linux-4.4-rc6.aufs.mod/fs/inode.c
--- linux-4.4-rc6.aufs/fs/inode.c 2015-12-21 13:06:55.265034468 +0200
+++ linux-4.4-rc6.aufs.mod/fs/inode.c 2015-12-21 19:55:29.524275783 +0200
@@ -1593,6 +1593,7 @@ static int update_time(struct inode *ino
return update_time(inode, time, flags);
}
@@ -73,9 +65,9 @@ diff -Nurp linux-4.1-aufs4/fs/inode.c linux-4.1-aufs4-mod/fs/inode.c
/**
* touch_atime - update the access time
diff -Nurp linux-4.1-aufs4/fs/namespace.c linux-4.1-aufs4-mod/fs/namespace.c
--- linux-4.1-aufs4/fs/namespace.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/fs/namespace.c 2015-06-25 20:11:30.629136790 +0200
diff -Nurp linux-4.4-rc6.aufs/fs/namespace.c linux-4.4-rc6.aufs.mod/fs/namespace.c
--- linux-4.4-rc6.aufs/fs/namespace.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/fs/namespace.c 2015-12-21 19:55:29.525275790 +0200
@@ -463,6 +463,7 @@ void __mnt_drop_write(struct vfsmount *m
mnt_dec_writers(real_mount(mnt));
preempt_enable();
@@ -84,7 +76,7 @@ diff -Nurp linux-4.1-aufs4/fs/namespace.c linux-4.1-aufs4-mod/fs/namespace.c
/**
* mnt_drop_write - give up write access to a mount
@@ -1768,6 +1769,7 @@ int iterate_mounts(int (*f)(struct vfsmo
@@ -1803,6 +1804,7 @@ int iterate_mounts(int (*f)(struct vfsmo
}
return 0;
}
@@ -92,9 +84,9 @@ diff -Nurp linux-4.1-aufs4/fs/namespace.c linux-4.1-aufs4-mod/fs/namespace.c
static void cleanup_group_ids(struct mount *mnt, struct mount *end)
{
diff -Nurp linux-4.1-aufs4/fs/notify/group.c linux-4.1-aufs4-mod/fs/notify/group.c
--- linux-4.1-aufs4/fs/notify/group.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/fs/notify/group.c 2015-06-25 20:11:30.629136790 +0200
diff -Nurp linux-4.4-rc6.aufs/fs/notify/group.c linux-4.4-rc6.aufs.mod/fs/notify/group.c
--- linux-4.4-rc6.aufs/fs/notify/group.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/fs/notify/group.c 2015-12-21 19:55:29.525275790 +0200
@@ -22,6 +22,7 @@
#include <linux/srcu.h>
#include <linux/rculist.h>
@@ -127,9 +119,9 @@ diff -Nurp linux-4.1-aufs4/fs/notify/group.c linux-4.1-aufs4-mod/fs/notify/group
int fsnotify_fasync(int fd, struct file *file, int on)
{
diff -Nurp linux-4.1-aufs4/fs/notify/mark.c linux-4.1-aufs4-mod/fs/notify/mark.c
--- linux-4.1-aufs4/fs/notify/mark.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/fs/notify/mark.c 2015-06-25 20:11:30.629136790 +0200
diff -Nurp linux-4.4-rc6.aufs/fs/notify/mark.c linux-4.4-rc6.aufs.mod/fs/notify/mark.c
--- linux-4.4-rc6.aufs/fs/notify/mark.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/fs/notify/mark.c 2015-12-21 19:55:29.525275790 +0200
@@ -109,6 +109,7 @@ void fsnotify_put_mark(struct fsnotify_m
mark->free_mark(mark);
}
@@ -138,15 +130,15 @@ diff -Nurp linux-4.1-aufs4/fs/notify/mark.c linux-4.1-aufs4-mod/fs/notify/mark.c
/* 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);
@@ -199,6 +200,7 @@ void fsnotify_free_mark(struct fsnotify_
if (group->ops->freeing_mark)
group->ops->freeing_mark(mark, group);
}
+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
void fsnotify_destroy_mark(struct fsnotify_mark *mark,
struct fsnotify_group *group)
@@ -402,6 +404,7 @@ int fsnotify_add_mark(struct fsnotify_ma
mutex_unlock(&group->mark_mutex);
return ret;
}
@@ -154,7 +146,7 @@ diff -Nurp linux-4.1-aufs4/fs/notify/mark.c linux-4.1-aufs4-mod/fs/notify/mark.c
/*
* Given a list of marks, find the mark associated with given group. If found
@@ -455,6 +458,7 @@ void fsnotify_init_mark(struct fsnotify_
@@ -492,6 +495,7 @@ void fsnotify_init_mark(struct fsnotify_
atomic_set(&mark->refcnt, 1);
mark->free_mark = free_mark;
}
@@ -162,10 +154,10 @@ diff -Nurp linux-4.1-aufs4/fs/notify/mark.c linux-4.1-aufs4-mod/fs/notify/mark.c
static int fsnotify_mark_destroy(void *ignored)
{
diff -Nurp linux-4.1-aufs4/fs/open.c linux-4.1-aufs4-mod/fs/open.c
--- linux-4.1-aufs4/fs/open.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/fs/open.c 2015-06-25 23:49:02.741362661 +0200
@@ -62,6 +62,7 @@ int do_truncate(struct dentry *dentry, l
diff -Nurp linux-4.4-rc6.aufs/fs/open.c linux-4.4-rc6.aufs.mod/fs/open.c
--- linux-4.4-rc6.aufs/fs/open.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/fs/open.c 2015-12-21 19:55:29.526275798 +0200
@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, l
mutex_unlock(&dentry->d_inode->i_mutex);
return ret;
}
@@ -173,17 +165,17 @@ diff -Nurp linux-4.1-aufs4/fs/open.c linux-4.1-aufs4-mod/fs/open.c
long vfs_truncate(struct path *path, loff_t length)
{
@@ -676,6 +677,7 @@ int open_check_o_direct(struct file *f)
@@ -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,
int (*open)(struct inode *, struct file *),
diff -Nurp linux-4.1-aufs4/fs/read_write.c linux-4.1-aufs4-mod/fs/read_write.c
--- linux-4.1-aufs4/fs/read_write.c 2015-06-25 20:09:18.280319109 +0200
+++ linux-4.1-aufs4-mod/fs/read_write.c 2015-06-25 23:43:56.804138140 +0200
struct inode *inode,
diff -Nurp linux-4.4-rc6.aufs/fs/read_write.c linux-4.4-rc6.aufs.mod/fs/read_write.c
--- linux-4.4-rc6.aufs/fs/read_write.c 2015-12-21 19:54:42.987923551 +0200
+++ linux-4.4-rc6.aufs.mod/fs/read_write.c 2015-12-21 19:55:29.526275798 +0200
@@ -504,6 +504,7 @@ vfs_readf_t vfs_readf(struct file *file)
return new_sync_read;
return ERR_PTR(-ENOSYS);
@@ -200,10 +192,10 @@ diff -Nurp linux-4.1-aufs4/fs/read_write.c linux-4.1-aufs4-mod/fs/read_write.c
ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos)
{
diff -Nurp linux-4.1-aufs4/fs/splice.c linux-4.1-aufs4-mod/fs/splice.c
--- linux-4.1-aufs4/fs/splice.c 2015-06-25 20:09:18.280319109 +0200
+++ linux-4.1-aufs4-mod/fs/splice.c 2015-06-25 20:11:30.629136790 +0200
@@ -1114,6 +1114,7 @@ long do_splice_from(struct pipe_inode_in
diff -Nurp linux-4.4-rc6.aufs/fs/splice.c linux-4.4-rc6.aufs.mod/fs/splice.c
--- linux-4.4-rc6.aufs/fs/splice.c 2015-12-21 19:54:42.987923551 +0200
+++ linux-4.4-rc6.aufs.mod/fs/splice.c 2015-12-21 19:55:29.526275798 +0200
@@ -1123,6 +1123,7 @@ long do_splice_from(struct pipe_inode_in
return splice_write(pipe, out, ppos, len, flags);
}
@@ -211,7 +203,7 @@ diff -Nurp linux-4.1-aufs4/fs/splice.c linux-4.1-aufs4-mod/fs/splice.c
/*
* Attempt to initiate a splice from a file to a pipe.
@@ -1140,6 +1141,7 @@ long do_splice_to(struct file *in, loff_
@@ -1149,6 +1150,7 @@ long do_splice_to(struct file *in, loff_
return splice_read(in, ppos, pipe, len, flags);
}
@@ -219,10 +211,10 @@ diff -Nurp linux-4.1-aufs4/fs/splice.c linux-4.1-aufs4-mod/fs/splice.c
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff -Nurp linux-4.1-aufs4/security/commoncap.c linux-4.1-aufs4-mod/security/commoncap.c
--- linux-4.1-aufs4/security/commoncap.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/security/commoncap.c 2015-06-25 20:11:30.629136790 +0200
@@ -975,9 +975,11 @@ int cap_mmap_addr(unsigned long addr)
diff -Nurp linux-4.4-rc6.aufs/security/commoncap.c linux-4.4-rc6.aufs.mod/security/commoncap.c
--- linux-4.4-rc6.aufs/security/commoncap.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/security/commoncap.c 2015-12-21 19:55:29.527275805 +0200
@@ -1053,12 +1053,14 @@ int cap_mmap_addr(unsigned long addr)
}
return ret;
}
@@ -234,9 +226,12 @@ diff -Nurp linux-4.1-aufs4/security/commoncap.c linux-4.1-aufs4-mod/security/com
return 0;
}
+EXPORT_SYMBOL(cap_mmap_file);
diff -Nurp linux-4.1-aufs4/security/device_cgroup.c linux-4.1-aufs4-mod/security/device_cgroup.c
--- linux-4.1-aufs4/security/device_cgroup.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/security/device_cgroup.c 2015-06-25 20:11:30.629136790 +0200
#ifdef CONFIG_SECURITY
diff -Nurp linux-4.4-rc6.aufs/security/device_cgroup.c linux-4.4-rc6.aufs.mod/security/device_cgroup.c
--- linux-4.4-rc6.aufs/security/device_cgroup.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/security/device_cgroup.c 2015-12-21 19:55:29.527275805 +0200
@@ -7,6 +7,7 @@
#include <linux/device_cgroup.h>
#include <linux/cgroup.h>
@@ -253,74 +248,74 @@ diff -Nurp linux-4.1-aufs4/security/device_cgroup.c linux-4.1-aufs4-mod/security
int devcgroup_inode_mknod(int mode, dev_t dev)
{
diff -Nurp linux-4.1-aufs4/security/security.c linux-4.1-aufs4-mod/security/security.c
--- linux-4.1-aufs4/security/security.c 2015-06-22 07:05:43.000000000 +0200
+++ linux-4.1-aufs4-mod/security/security.c 2015-06-25 20:11:30.629136790 +0200
@@ -430,6 +430,7 @@ int security_path_rmdir(struct path *dir
diff -Nurp linux-4.4-rc6.aufs/security/security.c linux-4.4-rc6.aufs.mod/security/security.c
--- linux-4.4-rc6.aufs/security/security.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.4-rc6.aufs.mod/security/security.c 2015-12-21 19:55:29.528275813 +0200
@@ -433,6 +433,7 @@ int security_path_rmdir(struct path *dir
return 0;
return security_ops->path_rmdir(dir, dentry);
return call_int_hook(path_rmdir, 0, dir, dentry);
}
+EXPORT_SYMBOL(security_path_rmdir);
int security_path_unlink(struct path *dir, struct dentry *dentry)
{
@@ -446,6 +447,7 @@ int security_path_symlink(struct path *d
@@ -449,6 +450,7 @@ int security_path_symlink(struct path *d
return 0;
return security_ops->path_symlink(dir, dentry, old_name);
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)
@@ -454,6 +456,7 @@ int security_path_link(struct dentry *ol
@@ -457,6 +459,7 @@ int security_path_link(struct dentry *ol
return 0;
return security_ops->path_link(old_dentry, new_dir, new_dentry);
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,
@@ -481,6 +484,7 @@ int security_path_truncate(struct path *
@@ -484,6 +487,7 @@ int security_path_truncate(struct path *
return 0;
return security_ops->path_truncate(path);
return call_int_hook(path_truncate, 0, path);
}
+EXPORT_SYMBOL(security_path_truncate);
int security_path_chmod(struct path *path, umode_t mode)
{
@@ -488,6 +492,7 @@ int security_path_chmod(struct path *pat
@@ -491,6 +495,7 @@ int security_path_chmod(struct path *pat
return 0;
return security_ops->path_chmod(path, mode);
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)
{
@@ -495,6 +500,7 @@ int security_path_chown(struct path *pat
@@ -498,6 +503,7 @@ int security_path_chown(struct path *pat
return 0;
return security_ops->path_chown(path, uid, gid);
return call_int_hook(path_chown, 0, path, uid, gid);
}
+EXPORT_SYMBOL(security_path_chown);
int security_path_chroot(struct path *path)
{
@@ -580,6 +586,7 @@ int security_inode_readlink(struct dentr
@@ -583,6 +589,7 @@ int security_inode_readlink(struct dentr
return 0;
return security_ops->inode_readlink(dentry);
return call_int_hook(inode_readlink, 0, dentry);
}
+EXPORT_SYMBOL(security_inode_readlink);
int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
{
@@ -594,6 +601,7 @@ int security_inode_permission(struct ino
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 security_ops->inode_permission(inode, mask);
return call_int_hook(inode_permission, 0, inode, mask);
}
+EXPORT_SYMBOL(security_inode_permission);
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -716,6 +724,7 @@ int security_file_permission(struct file
@@ -736,6 +744,7 @@ int security_file_permission(struct file
return fsnotify_perm(file, mask);
}
@@ -328,7 +323,7 @@ diff -Nurp linux-4.1-aufs4/security/security.c linux-4.1-aufs4-mod/security/secu
int security_file_alloc(struct file *file)
{
@@ -775,6 +784,7 @@ int security_mmap_file(struct file *file
@@ -795,6 +804,7 @@ int security_mmap_file(struct file *file
return ret;
return ima_file_mmap(file, prot);
}
@@ -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;
@@ -4134,10 +4134,10 @@ head: c99566fb810c9d8cae5e9cd39d1772b55e2f514c
depends on DRM && PCI
--- linux/drivers/gpu/drm/Makefile.gpu-drm-mach64.orig
+++ linux/drivers/gpu/drm/Makefile
@@ -39,6 +39,7 @@ obj-$(CONFIG_DRM_TDFX) += tdfx/
obj-$(CONFIG_DRM_R128) += r128/
@@ -38,6 +38,7 @@ obj-$(CONFIG_DRM_R128) += r128/
obj-$(CONFIG_HSA_AMD) += amd/amdkfd/
obj-$(CONFIG_DRM_RADEON)+= radeon/
obj-$(CONFIG_DRM_AMDGPU)+= amd/amdgpu/
+obj-$(CONFIG_DRM_MACH64)+= mach64/
obj-$(CONFIG_DRM_MGA) += mga/
obj-$(CONFIG_DRM_I810) += i810/
@@ -208,7 +208,7 @@ diff -p -up linux-2.6.28/net/ipv4/netfilter/ipt_psd.c.orig linux-2.6.28/net/ipv4
+module_exit(ipt_psd_fini);
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
@@ -69,6 +69,14 @@ config IP_NF_MATCH_ECN
@@ -193,6 +193,14 @@ config IP_NF_MATCH_ECN
(e.g. when running oldconfig). It selects
CONFIG_NETFILTER_XT_MATCH_ECN.
@@ -222,7 +222,7 @@ diff -p -up linux-2.6.28/net/ipv4/netfilter/ipt_psd.c.orig linux-2.6.28/net/ipv4
+
config IP_NF_MATCH_RPFILTER
tristate '"rpfilter" reverse path filter match support'
depends on NETFILTER_ADVANCED && (IP_NF_MANGLE || IP_NF_RAW)
depends on NETFILTER_ADVANCED
--- linux/include/uapi/linux/netfilter_ipv4/Kbuild.orig
+++ linux/include/uapi/linux/netfilter_ipv4/Kbuild
@@ -8,4 +8,5 @@ header-y += ipt_REJECT.h
@@ -1,28 +0,0 @@
From: Alex Williamson <alex.williamson@redhat.com>
Subject: [PATCH] PCI: ACS quirks for Intel 9-series PCH root ports
Date: Fri, 01 May 2015 13:20:13 -0600
Intel confirms that 9-series chipset root ports provide ACS-equivalent
isolation when configured via the existing Intel PCH ACS quirk setup.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Don Dugger <donald.d.dugger@intel.com>
---
drivers/pci/quirks.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index c6dc1df..f126bd6 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3740,6 +3740,8 @@ static const u16 pci_quirk_intel_pch_acs_ids[] = {
/* Wellsburg (X99) PCH */
0x8d10, 0x8d11, 0x8d12, 0x8d13, 0x8d14, 0x8d15, 0x8d16, 0x8d17,
0x8d18, 0x8d19, 0x8d1a, 0x8d1b, 0x8d1c, 0x8d1d, 0x8d1e,
+ /* Lynx Point (9 series) PCH */
+ 0x8c90, 0x8c92, 0x8c94, 0x8c96, 0x8c98, 0x8c9a, 0x8c9c, 0x8c9e,
};
static bool pci_quirk_intel_pch_acs_match(struct pci_dev *dev)
@@ -0,0 +1,19 @@
--- linux/drivers/platform/x86/shuttle-wmi.c.orig 2015-09-30 00:51:13.000000000 +0300
+++ linux/drivers/platform/x86/shuttle-wmi.c 2015-09-30 02:04:20.808458393 +0300
@@ -26,6 +26,7 @@
#include <linux/input/sparse-keymap.h>
#include <linux/backlight.h>
#include <linux/fb.h>
+#include <acpi/video.h>
MODULE_AUTHOR("Herton Ronaldo Krzesinski");
MODULE_DESCRIPTION("Shuttle WMI Extras Driver");
@@ -1161,7 +1162,7 @@ static int shuttle_wmi_probe(struct plat
goto err_notify;
}
- if (!acpi_video_backlight_support()) {
+ if (acpi_video_get_backlight_type() == acpi_backlight_vendor) {
rc = shuttle_wmi_backlight_init(priv);
if (rc)
goto err_backlight;
+54 -12
View File
@@ -38,9 +38,13 @@ x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch
# slows down boot
Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
# breaks nvidia304
Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch
###
### Core
###
base-cacheinfo-silence-DT-warnings.patch
###
### i2c
@@ -56,9 +60,6 @@ Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
pci-add-ALI-M5229-ide-compatibility-mode-quirk.patch
pci-quirks-drop-devinit-exit.patch
# Intel ACS quirks
pci-acs-quirks-for-Intel-9-series-PCH-root-ports.patch
###
### PNP core
###
@@ -73,6 +74,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
###
@@ -112,21 +116,19 @@ block-floppy-disable-pnp-modalias.patch
# prefer ata over ide drivers
ata-prefer-ata-drivers-over-ide-drivers-when-both-are-built.patch
# korg #81551
ata-revert-Disabling-the-async-PM-for-JMicron-chip-363-361.patch
ata-jmicron-disable-broken-async_suspend.patch
# Nice SSD speedup
block-Make-CFQ-default-to-IOPS-mode-on-SSDs.patch
block-cfq-iosched-fix-the-setting-of-IOPS-mode-on-SSDs.patch
# ahci ids
ahci-add-new-Intel-device-IDs.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
###
### FireWire
@@ -161,6 +163,28 @@ 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
###
### Hardware Monitoring
###
@@ -219,6 +243,7 @@ net-netfilter-psd-2.6.35-buildfix.patch
# (Mainly allow turning on/off webcam and wireless on Shuttle DA18IE and DA18IM)
platform-x86-add-shuttle-wmi-driver.patch
platform-x86-shuttle-wmi-drop-devinit-exit.patch
platform-x86-shuttle-wmi-4.2-buildfix.patch
###
### RTC
@@ -244,6 +269,10 @@ include-kbuild-export-pci_ids.patch
### TTY
###
###
###
###
###
### USB
###
@@ -296,6 +325,7 @@ video-mageia-logo.patch
3rd-ndiswrapper-Makefile-build-fix.patch
3rd-ndiswrapper-linux-3.14-buildfix.patch
3rd-ndiswrapper-4.0-buildfix.patch
3rd-ndiswrapper-4.2-buildfix.patch
# rfswitch
3rd-rfswitch-1.3.patch
@@ -311,8 +341,6 @@ video-mageia-logo.patch
# add rtl8723bs support (mga#15874)
3rd-rtl8723bs.patch
3rd-rtl8723bs-buildfix.patch
3rd-rtl8723bs-updates.patch
###
### Security
@@ -330,6 +358,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
###
+132 -16
View File
@@ -1,4 +1,4 @@
i<?xml version="1.0" ?>
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
@@ -12,7 +12,7 @@ i<?xml version="1.0" ?>
<IsA>kernel</IsA>
<Summary>The Linux kernel (the core of the Linux operating system) for Pisi Linux</Summary>
<Description>kernel contains the Linux kernel, the core of any Linux operating system. The kernel handles the basic functions of the operating system: memory allocation, process allocation, device input and output, etc.</Description>
<Archive sha1sum="dce24ac1874f362000e40027075e7d24ba123b73" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.tar.gz</Archive>
<Archive sha1sum="180ab617036593212274177eff3a67f437c1b5ea" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.gz</Archive>
<AdditionalFiles>
<AdditionalFile target="configs/kernel-i686-config">configs/kernel-i686-config</AdditionalFile>
<AdditionalFile target="configs/kernel-x86_64-config">configs/kernel-x86_64-config</AdditionalFile>
@@ -28,18 +28,22 @@ i<?xml version="1.0" ?>
</BuildDependencies>
<Patches>
<!-- Linux patches -->
<Patch level="1" compressionType="xz">patches/linux/patch-4.1.6.xz</Patch>
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.1.6/1.mga6/PATCHES/patches/series-->
<!--Patch level="1" compressionType="xz">patches/linux/patch-4.3.2.xz</Patch-->
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.4.0/1.mga6/PATCHES/patches/series-->
<!--stable patches-->
<!--other patches-->
<Patch level="1">patches/mageia/x86-pci-toshiba-equium-a60-assign-busses.patch</Patch>
<Patch level="1">patches/mageia/x86-boot-video-80x25-if-break.patch</Patch>
<Patch level="1">patches/mageia/x86-default_poweroff_up_machines.patch</Patch>
<Patch level="1">patches/mageia/x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch</Patch>
<Patch level="1">patches/mageia/Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch</Patch>
<Patch level="1">patches/mageia/Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch</Patch>
<Patch level="1">patches/mageia/base-cacheinfo-silence-DT-warnings.patch</Patch>
<Patch level="1">patches/mageia/pci-add-ALI-M5229-ide-compatibility-mode-quirk.patch</Patch>
<Patch level="1">patches/mageia/pci-quirks-drop-devinit-exit.patch</Patch>
<Patch level="1">patches/mageia/pci-acs-quirks-for-Intel-9-series-PCH-root-ports.patch</Patch>
<Patch level="1">patches/mageia/acpi-CLEVO-M360S-disable_acpi_irq.patch</Patch>
<Patch level="1">patches/mageia/acpi-processor-M720SR-limit-to-C2.patch</Patch>
<Patch level="1">patches/mageia/ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch</Patch>
<!--Patch level="1">patches/mageia/scsi-ppscsi-2.6.2.patch</Patch>
<Patch level="1">patches/mageia/scsi-ppscsi_fixes.patch</Patch>
<Patch level="1">patches/mageia/scsi-ppscsi-sg-helper-update.patch</Patch>
@@ -52,12 +56,9 @@ i<?xml version="1.0" ?>
<Patch level="1">patches/mageia/dm-raid-aliases.patch</Patch>
<Patch level="1">patches/mageia/block-floppy-disable-pnp-modalias.patch</Patch>
<Patch level="1">patches/mageia/ata-prefer-ata-drivers-over-ide-drivers-when-both-are-built.patch</Patch>
<Patch level="1">patches/mageia/ata-revert-Disabling-the-async-PM-for-JMicron-chip-363-361.patch</Patch>
<Patch level="1">patches/mageia/ata-jmicron-disable-broken-async_suspend.patch</Patch>
<Patch level="1">patches/mageia/block-Make-CFQ-default-to-IOPS-mode-on-SSDs.patch</Patch>
<Patch level="1">patches/mageia/block-cfq-iosched-fix-the-setting-of-IOPS-mode-on-SSDs.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs4.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs4-modular.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs-4.4.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs-4.4-modular.patch</Patch>
<Patch level="1">patches/mageia/firewire-ieee1394-module-aliases.patch</Patch>
<Patch level="1">patches/mageia/char-agp-intel-new-Q57-id.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64.patch</Patch>
@@ -73,10 +74,26 @@ i<?xml version="1.0" ?>
<Patch level="1">patches/mageia/gpu-drm-mach64-3.6-buildfix.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64-3.7-buildfix.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64-3.12-buildfix.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64-restore-mach64_PCI_IDS.patch</Patch><!--deneme-->
<Patch level="1">patches/mageia/gpu-drm-mach64-restore-mach64_PCI_IDS.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64-linux-3.14-buildfix.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64-3.17-buildfix.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64-3.18-buildfix.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-i915-Fix-RPS-pointer-passed-from-wait_ioctl-to-i915_wait_request.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0001-devicetree-add-vendor-prefix-for-Vivante-Corporation.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0002-drm-etnaviv-add-devicetree-bindings.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0003-drm-etnaviv-add-initial-etnaviv-DRM-driver.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0004-MAINTAINERS-add-maintainer-and-reviewers-for-the-etn.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0005-drm-etnaviv-unlock-on-error-in-etnaviv_gem_get_iova.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0006-drm-etnaviv-fix-workaround-for-GC500.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0101-drm-Create-a-driver-hook-for-allocating-GEM-object-s.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0102-drm-vc4-Add-a-BO-cache.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0103-drm-vc4-Add-create-and-map-BO-ioctls.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0104-drm-vc4-Add-an-API-for-creating-GPU-shaders-in-GEM-B.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0105-drm-vc4-Fix-a-typo-in-a-V3D-debug-register.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0106-drm-vc4-Bind-and-initialize-the-V3D-engine.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0107-drm-vc4-Add-support-for-drawing-3D-frames.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0108-drm-vc4-Add-support-for-async-pageflips.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-0109-drm-vc4-Add-an-interface-for-capturing-the-GPU-state.patch</Patch>
<Patch level="1">patches/mageia/input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch</Patch>
<Patch level="1">patches/mageia/net-sis190-fix-list-usage.patch</Patch>
<Patch level="1">patches/mageia/net-netfilter-IFWLOG.patch</Patch>
@@ -90,6 +107,7 @@ i<?xml version="1.0" ?>
<Patch level="1">patches/mageia/net-netfilter-psd-2.6.35-buildfix.patch</Patch>
<Patch level="1">patches/mageia/platform-x86-add-shuttle-wmi-driver.patch</Patch>
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-drop-devinit-exit.patch</Patch>
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-4.2-buildfix.patch</Patch>
<Patch level="1">patches/mageia/include-kbuild-export-pci_ids.patch</Patch>
<Patch level="1">patches/mageia/hid-usbhid-IBM-BladeCenterHS20-quirk.patch</Patch>
<Patch level="1">patches/mageia/usb-storage-unusual_devs-add-id.patch</Patch>
@@ -104,14 +122,15 @@ i<?xml version="1.0" ?>
<Patch level="1">patches/mageia/3rd-acerhk-fix-build-with-function-tracer.patch</Patch>
<Patch level="1">patches/mageia/3rd-acerhk-2.6.36-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-acerhk-fix-include.patch</Patch>
<!--Patch level="1">patches/mageia/3rd-aes2501-r19.patch</Patch>
<!--<Patch level="1">patches/mageia/3rd-aes2501-r19.patch</Patch>
<Patch level="1">patches/mageia/3rd-aes2501-kbuild.patch</Patch>
<Patch level="1">patches/mageia/3rd-aes2501-rmmod-oops-fix.patch</Patch-->
<Patch level="1">patches/mageia/3rd-aes2501-rmmod-oops-fix.patch</Patch -2-->
<Patch level="1">patches/mageia/3rd-ndiswrapper-1.59.patch</Patch>
<Patch level="1">patches/mageia/3rd-ndiswrapper-Kconfig.patch</Patch>
<Patch level="1">patches/mageia/3rd-ndiswrapper-Makefile-build-fix.patch</Patch>
<Patch level="1">patches/mageia/3rd-ndiswrapper-linux-3.14-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-ndiswrapper-4.0-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-ndiswrapper-4.2-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-rfswitch-1.3.patch</Patch>
<Patch level="1">patches/mageia/3rd-rfswitch-build-fix.patch</Patch>
<Patch level="1">patches/mageia/3rd-rfswitch-3.0-buildfix.patch</Patch>
@@ -121,8 +140,19 @@ i<?xml version="1.0" ?>
<Patch level="1">patches/mageia/3rd-viahss-2.6.35-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-viahss-3.0-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-rtl8723bs.patch</Patch>
<Patch level="1">patches/mageia/3rd-rtl8723bs-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-rtl8723bs-updates.patch</Patch>
<Patch level="1">patches/mageia/ahci-add-new-Intel-device-IDs.patch</Patch>
<Patch level="1">patches/mageia/arm-0001-dt-bindings-Add-root-properties-for-Raspberry-Pi-2.patch</Patch>
<Patch level="1">patches/mageia/arm-0002-ARM-bcm2835-Add-a-compat-string-for-bcm2836-machine-.patch</Patch>
<Patch level="1">patches/mageia/arm-0003-ARM-bcm2835-Add-Kconfig-support-for-bcm2836.patch</Patch>
<Patch level="1">patches/mageia/arm-0011-ARM-bcm2835-Define-two-new-packets-from-the-latest-f.patch</Patch>
<Patch level="1">patches/mageia/arm-0012-dt-bindings-add-rpi-power-domain-driver-bindings.patch</Patch>
<Patch level="1">patches/mageia/arm-0013-ARM-bcm2835-add-rpi-power-domain-driver.patch</Patch>
<Patch level="1">patches/mageia/arm-0021-ARM-bcm2835-Split-the-DT-for-peripherals-from-the-DT.patch</Patch>
<Patch level="1">patches/mageia/arm-0022-ARM-bcm2835-Move-the-CPU-peripheral-include-out-of-c.patch</Patch>
<Patch level="1">patches/mageia/arm-0023-ARM-bcm2835-Add-devicetree-for-bcm2836-and-Raspberry.patch</Patch>
<Patch level="1">patches/mageia/arm-0024-ARM-bcm2835-Add-the-auxiliary-clocks-to-the-device-t.patch</Patch>
<Patch level="1">patches/mageia/arm-0031-ARM-bcm2835-enable-all-bcm2835-relevant-in-defconfig.patch</Patch>
<Patch level="1">patches/mageia/arm-0032-ARM-bcm2835-enable-auxiliary-spi-driver-in-defconfig.patch</Patch>
</Patches>
</Source>
@@ -177,8 +207,94 @@ i<?xml version="1.0" ?>
</Package>
<History>
<Update release="69">
<Date>2016-01-11</Date>
<Version>4.4.0</Version>
<Comment>Version bump to 4.4.0</Comment>
<Type package="kernel">security</Type>
<Requires>
<Action package="kernel">systemRestart</Action>
</Requires>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="68">
<Date>2015-12-12</Date>
<Version>4.3.2</Version>
<Comment>Version bump to 4.3.2 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.2</Comment>
<Type package="kernel">security</Type>
<Requires>
<Action package="kernel">systemRestart</Action>
</Requires>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="67">
<Date>2015-12-01</Date>
<Version>4.3.0</Version>
<Comment>Version bump to 4.3.0</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="66">
<Date>2015-11-11</Date>
<Version>4.2.6</Version>
<Comment>Version bump to 4.2.5 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.5</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="65">
<Date>2015-11-30</Date>
<Version>4.2.5</Version>
<Comment>Version bump to 4.2.5 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.5</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="64">
<Date>2015-11-27</Date>
<Version>4.2.4</Version>
<Comment>Version bump to 4.2.4 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.4</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="63">
<Date>2015-10-04</Date>
<Version>4.2.3</Version>
<Comment>Version bump to 4.2.3 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.3</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="62">
<Date>2015-10-01</Date>
<Version>4.2.2</Version>
<Comment>Version bump to 4.2.2 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.2</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="61">
<Date>2015-09-23</Date>
<Version>4.1.8</Version>
<Comment>Version bump to 4.1.8 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.8</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="60">
<Date>2015-09-18</Date>
<Version>4.1.7</Version>
<Comment>Version bump to 4.1.7 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.7</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="59">
<Date>2015-08-18</Date>
<Date>2015-09-05</Date>
<Version>4.1.6</Version>
<Comment>Version bump to 4.1.6 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.6</Comment>
<Type package="kernel">security</Type>
+72 -2
View File
@@ -12,13 +12,13 @@
<IsA>app:console</IsA>
<Summary>CPU power management tools</Summary>
<Description>cpupowertools contains utilities to manage power management and frequency scaling policies of modern CPUs.</Description>
<Archive sha1sum="dce24ac1874f362000e40027075e7d24ba123b73" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.tar.gz</Archive>
<Archive sha1sum="180ab617036593212274177eff3a67f437c1b5ea" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.gz</Archive>
<BuildDependencies>
<Dependency>pciutils-devel</Dependency>
</BuildDependencies>
<Patches>
<!-- Linux patches -->
<Patch level="1" compressionType="xz">patches/linux/patch-4.1.6.xz</Patch>
<!--Patch level="1" compressionType="xz">patches/linux/patch-4.3.2.xz</Patch-->
</Patches>
</Source>
@@ -44,6 +44,76 @@
</Provides>-->
</Package>
<History>
<Update release="68">
<Date>2016-01-16</Date>
<Version>4.4.0</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="67">
<Date>2015-12-12</Date>
<Version>4.3.2</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="66">
<Date>2015-12-01</Date>
<Version>4.3.0</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="65">
<Date>2015-11-11</Date>
<Version>4.2.6</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="64">
<Date>2015-11-30</Date>
<Version>4.2.5</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="63">
<Date>2015-11-27</Date>
<Version>4.2.4</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="62">
<Date>2015-10-05</Date>
<Version>4.2.3</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="61">
<Date>2015-10-01</Date>
<Version>4.2.2</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="60">
<Date>2015-09-23</Date>
<Version>4.1.8</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="59">
<Date>2015-09-18</Date>
<Version>4.1.7</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="58">
<Date>2015-08-18</Date>
<Version>4.1.6</Version>
+921 -85
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
a1bd2d1c8c53ab449470a8a04f5d7f846daf60b1
66b08af72e661bf5bda19903f5ed9312dab968e4
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
373e38d016153674ab6b6d7eea9d776ea6c30376
1c1639750169a06587e98de1317971d8b4df5358
@@ -1 +1 @@
Pisi_Linux 2.0Alfa5
Pisi_Linux 2.0Alfa7
+14
View File
@@ -67,6 +67,20 @@
</Package>
<History>
<Update release="16">
<Date>2016-01-16</Date>
<Version>3.10.0</Version>
<Comment>Release Alfa7, New Cat in town...</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="15">
<Date>2015-10-30</Date>
<Version>3.10.0</Version>
<Comment>Release Alfa6.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="14">
<Date>2015-08-18</Date>
<Version>3.10.0</Version>
+8 -1
View File
@@ -13,7 +13,7 @@
<IsA>app:gui</IsA>
<Summary>Biosdevname is a udev helper utility developed</Summary>
<Description>Biosdevname is a udev helper utility developed by Dell and released under the GNU General Public License (GPL). It provides a consistent naming mechanism for network devices based on their physical location as suggested by the system BIOS.</Description>
<Archive sha1sum="372eaee40a8501494bea783bb6552ff457cbd49a" type="targz">http://linux.dell.com/biosdevname/biosdevname-0.6.1/biosdevname-0.6.1.tar.gz</Archive>
<Archive sha1sum="972dc94c81cdbe12216fcf379453587ae505054f" type="targz">http://linux.dell.com/biosdevname/biosdevname-0.7.1/biosdevname-0.7.1.tar.gz</Archive>
<BuildDependencies>
<Dependency>pciutils-devel</Dependency>
<Dependency>glibc-devel</Dependency>
@@ -36,6 +36,13 @@
</Package>
<History>
<Update release="6">
<Date>2016-01-10</Date>
<Version>0.7.1</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="5">
<Date>2015-03-30</Date>
<Version>0.6.1</Version>
+8 -1
View File
@@ -11,7 +11,7 @@
<IsA>app:web</IsA>
<Summary>Common CA certificates</Summary>
<Description>Common CA certificates</Description>
<Archive sha1sum="6013ce6a3bf13e73a7e1feddcd17f5b2c09e5bd3" type="tarxz">http://ftp.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20141019.tar.xz</Archive>
<Archive sha1sum="4525a194736c6691dbd59fa87281b722837b4768" type="tarxz">http://ftp.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20160104.tar.xz</Archive>
</Source>
<Package>
@@ -31,6 +31,13 @@
</Package>
<History>
<Update release="6">
<Date>2016-01-15</Date>
<Version>20160104</Version>
<Comment>Version bump.</Comment>
<Name>Alihan Öztürk</Name>
<Email>alihan@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2015-01-10</Date>
<Version>20141019</Version>
+2 -2
View File
@@ -27,8 +27,8 @@ def check():
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.remove("/usr/share/man/man1/mt.1")
pisitools.removeDir("/usr/libexec")
pisitools.removeDir("/usr/share/man/man8")
#pisitools.removeDir("/usr/libexec")
pisitools.dodoc("ChangeLog", "NEWS", "README")
+9 -2
View File
@@ -12,9 +12,9 @@
<IsA>app:console</IsA>
<Summary>A file archival tool which can also read and write tar files</Summary>
<Description>GNU cpio copies files into or out of a cpio or tar archive. The archive can be another file on the disk, a magnetic tape, or a pipe. GNU cpio supports the following archive formats: binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, and POSIX.1 tar.</Description>
<Archive sha1sum="6f1934b0079dc1e85ddff89cabdf01adb3a74abb" type="tarbz2">mirrors://gnu/cpio/cpio-2.11.tar.bz2</Archive>
<Archive sha1sum="60358408c76db354f6716724c4bcbcb6e18ab642" type="tarbz2">mirrors://gnu/cpio/cpio-2.12.tar.bz2</Archive>
<Patches>
<Patch level="1">cpio-2.7-svr4compat.patch</Patch>
<!--Patch level="1">cpio-2.7-svr4compat.patch</Patch-->
<Patch level="1">cpio-2.9-exitCode.patch</Patch>
<Patch level="1">CVE-2010-0624-rpatelib-overflow.patch</Patch>
</Patches>
@@ -32,6 +32,13 @@
</Package>
<History>
<Update release="4">
<Date>2016-01-03</Date>
<Version>2.12</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="3">
<Date>2014-05-11</Date>
<Version>2.11</Version>
+1 -1
View File
@@ -2,7 +2,7 @@
import os, re
OUR_ID = 650
OUR_ID = 101
OUR_NAME = "dbus"
OUR_DESC = "dbus"

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