{"action":"created","issue":{"url":"https://api.github.com/repos/raspberrypi/linux/issues/1178","labels_url":"https://api.github.com/repos/raspberrypi/linux/issues/1178/labels{/name}","comments_url":"https://api.github.com/repos/raspberrypi/linux/issues/1178/comments","events_url":"https://api.github.com/repos/raspberrypi/linux/issues/1178/events","html_url":"https://github.com/raspberrypi/linux/pull/1178","id":113922212,"number":1178,"title":"ARCH_BCM270X: Drop ATAGS support","user":{"login":"notro","id":530887,"avatar_url":"https://avatars.githubusercontent.com/u/530887?v=3","gravatar_id":"","url":"https://api.github.com/users/notro","html_url":"https://github.com/notro","followers_url":"https://api.github.com/users/notro/followers","following_url":"https://api.github.com/users/notro/following{/other_user}","gists_url":"https://api.github.com/users/notro/gists{/gist_id}","starred_url":"https://api.github.com/users/notro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/notro/subscriptions","organizations_url":"https://api.github.com/users/notro/orgs","repos_url":"https://api.github.com/users/notro/repos","events_url":"https://api.github.com/users/notro/events{/privacy}","received_events_url":"https://api.github.com/users/notro/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":51,"created_at":"2015-10-28T21:08:15Z","updated_at":"2015-11-14T16:01:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/raspberrypi/linux/pulls/1178","html_url":"https://github.com/raspberrypi/linux/pull/1178","diff_url":"https://github.com/raspberrypi/linux/pull/1178.diff","patch_url":"https://github.com/raspberrypi/linux/pull/1178.patch"},"body":"This PR makes Device Tree mandatory for booting the ARCH_BCM2708 kernel.\r\n\r\nWe have used Device Tree since we [switched to 3.18](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=97216) in January and it's time to remove [ATAGS](http://stackoverflow.com/questions/21014920/arm-linux-atags-vs-device-tree) support.\r\n\r\nThis will cut down on the amount of patches that we have to keep around and apply on each new kernel release. It is also a necessary step on the way to get one kernel image that can boot both Pi1 and Pi2 (instead of having kernel.img and kernel7.img).\r\n\r\nA /boot/config.txt that disables Device Tree will not boot anymore:\r\n```\r\ndevice_tree=\r\n```\r\nThere will be no visible sign that the kernel didn't receive a Device Tree since it won't know which drivers to load and hence can't display an error (a custom kernel with EARLY_PRINTK enabled would print an error on the serial console).\r\n"},"comment":{"url":"https://api.github.com/repos/raspberrypi/linux/issues/comments/156714012","html_url":"https://github.com/raspberrypi/linux/pull/1178#issuecomment-156714012","issue_url":"https://api.github.com/repos/raspberrypi/linux/issues/1178","id":156714012,"user":{"login":"HiassofT","id":3920953,"avatar_url":"https://avatars.githubusercontent.com/u/3920953?v=3","gravatar_id":"","url":"https://api.github.com/users/HiassofT","html_url":"https://github.com/HiassofT","followers_url":"https://api.github.com/users/HiassofT/followers","following_url":"https://api.github.com/users/HiassofT/following{/other_user}","gists_url":"https://api.github.com/users/HiassofT/gists{/gist_id}","starred_url":"https://api.github.com/users/HiassofT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HiassofT/subscriptions","organizations_url":"https://api.github.com/users/HiassofT/orgs","repos_url":"https://api.github.com/users/HiassofT/repos","events_url":"https://api.github.com/users/HiassofT/events{/privacy}","received_events_url":"https://api.github.com/users/HiassofT/received_events","type":"User","site_admin":false},"created_at":"2015-11-14T16:01:28Z","updated_at":"2015-11-14T16:01:28Z","body":"> The bcm2835_dma_desc_free call you added seems to be called from interrupt context which isn't allowed. Any ideas of how to avoid this?\n\nI had a look at the code and noticed two things:\n\nIn bcm2835_dma_terminate_all bcm2835_dma_desc_free is called inside\na spin_lock_irqsave block.\n\nhttps://github.com/notro/linux/blob/multi2708/drivers/dma/bcm2835-dma.c#L656\n\nThat would be easy to fix but won't help much alone since\nbcm2835_dma_terminate_all is already called with IRQs disabled.\n\nI went up the call-tree and noticed that IRQs are disabled \nquite early in the alsa code in snd_pcm_period_elapsed.\n\nhttps://github.com/notro/linux/blob/multi2708/sound/core/pcm_lib.c#L1881\n\nNo idea how or where to properly fix this...\n"}}