Page MenuHomePhabricator
Paste P101

nouveau_backlight_v3.diff
ArchivedPublic

Authored by pmoreau on Aug 5 2016, 8:09 PM.
diff --git a/drm/Makefile b/drm/Makefile
index 6d38d3a..466a987 100644
--- a/drm/Makefile
+++ b/drm/Makefile
@@ -11,8 +11,8 @@ endif
KBUILD_OPTS := M=$(CURDIR)/nouveau
KBUILD_OPTS += KCPPFLAGS="-Iinclude/uapi/drm"
-ifdef BUILDDIR
-KBUILD_OPTS += O=$(BUILDDIR)
+ifdef LINUXBUILDDIR
+KBUILD_OPTS += O=$(LINUXBUILDDIR)
endif
all: modules
diff --git a/drm/nouveau/nouveau_backlight.c b/drm/nouveau/nouveau_backlight.c
index f5101be..a0a1b9a 100644
--- a/drm/nouveau/nouveau_backlight.c
+++ b/drm/nouveau/nouveau_backlight.c
@@ -31,11 +31,39 @@
*/
#include <linux/backlight.h>
+#include <linux/idr.h>
#include "nouveau_drv.h"
#include "nouveau_reg.h"
#include "nouveau_encoder.h"
+#define BL_NAME_SIZE 15 // 12 for name + 2 for digits + 1 for '\0'
+
+struct backlight_connector {
+ struct list_head head;
+ int id;
+};
+
+struct nouveau_backlight {
+ struct backlight_device *device;
+ struct ida ida;
+ struct list_head connectors;
+};
+
+static void
+nouveau_get_backlight_name(char backlight_name[BL_NAME_SIZE], struct
+ backlight_connector *connector, struct nouveau_backlight *nv_bl)
+{
+ const int nb = ida_simple_get(&nv_bl->ida, 0, 0, GFP_KERNEL);
+ printk(KERN_INFO "FTW ida is %p\n", &nv_bl->ida);
+ printk(KERN_INFO "FTW nb is %d\n", nb);
+ if (nb > 0 && nb < 100)
+ sprintf(backlight_name, "nv_backlight%d", nb);
+ else
+ sprintf(backlight_name, "nv_backlight");
+ connector->id = nb;
+}
+
static int
nv40_get_intensity(struct backlight_device *bd)
{
@@ -74,6 +102,8 @@ nv40_backlight_init(struct drm_connector *connector)
struct nvif_object *device = &drm->device.object;
struct backlight_properties props;
struct backlight_device *bd;
+ struct backlight_connector bl_connector;
+ char backlight_name[BL_NAME_SIZE];
if (!(nvif_rd32(device, NV40_PMC_BACKLIGHT) & NV40_PMC_BACKLIGHT_MASK))
return 0;
@@ -81,11 +111,16 @@ nv40_backlight_init(struct drm_connector *connector)
memset(&props, 0, sizeof(struct backlight_properties));
props.type = BACKLIGHT_RAW;
props.max_brightness = 31;
- bd = backlight_device_register("nv_backlight", connector->kdev, drm,
+ nouveau_get_backlight_name(backlight_name, &bl_connector, drm->backlight);
+ bd = backlight_device_register(backlight_name , connector->kdev, drm,
&nv40_bl_ops, &props);
- if (IS_ERR(bd))
+ if (IS_ERR(bd)) {
+ if (bl_connector.id > 0)
+ ida_simple_remove(&drm->backlight->ida, bl_connector.id);
return PTR_ERR(bd);
- drm->backlight = bd;
+ }
+ list_add(&bl_connector.head, &drm->backlight->connectors);
+ drm->backlight->device = bd;
bd->props.brightness = nv40_get_intensity(bd);
backlight_update_status(bd);
@@ -182,6 +217,8 @@ nv50_backlight_init(struct drm_connector *connector)
struct backlight_properties props;
struct backlight_device *bd;
const struct backlight_ops *ops;
+ struct backlight_connector bl_connector;
+ char backlight_name[BL_NAME_SIZE];
nv_encoder = find_encoder(connector, DCB_OUTPUT_LVDS);
if (!nv_encoder) {
@@ -203,12 +240,17 @@ nv50_backlight_init(struct drm_connector *connector)
memset(&props, 0, sizeof(struct backlight_properties));
props.type = BACKLIGHT_RAW;
props.max_brightness = 100;
- bd = backlight_device_register("nv_backlight", connector->kdev,
+ nouveau_get_backlight_name(backlight_name, &bl_connector, drm->backlight);
+ bd = backlight_device_register(backlight_name , connector->kdev,
nv_encoder, ops, &props);
- if (IS_ERR(bd))
+ if (IS_ERR(bd)) {
+ if (bl_connector.id > 0)
+ ida_simple_remove(&drm->backlight->ida, bl_connector.id);
return PTR_ERR(bd);
+ }
- drm->backlight = bd;
+ list_add(&bl_connector.head, &drm->backlight->connectors);
+ drm->backlight->device = bd;
bd->props.brightness = bd->ops->get_brightness(bd);
backlight_update_status(bd);
return 0;
@@ -220,6 +262,19 @@ nouveau_backlight_init(struct drm_device *dev)
struct nouveau_drm *drm = nouveau_drm(dev);
struct nvif_device *device = &drm->device;
struct drm_connector *connector;
+ struct nouveau_backlight *bl = NULL;
+
+ printk(KERN_INFO "FTW drm is %p\n", drm);
+
+ bl = kzalloc(sizeof(*bl), GFP_KERNEL);
+ if (!bl)
+ return ERR_PTR(-ENOMEM);
+ drm->backlight = bl;
+
+ INIT_LIST_HEAD(&bl->connectors);
+ printk(KERN_INFO "FTW ida is %p\n", &bl->ida);
+ ida_init(&bl->ida);
+ printk(KERN_INFO "FTW ida is %p\n", &bl->ida);
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS &&
@@ -246,9 +301,20 @@ void
nouveau_backlight_exit(struct drm_device *dev)
{
struct nouveau_drm *drm = nouveau_drm(dev);
+ struct backlight_connector *connector;
+ struct nouveau_backlight *bl = drm->backlight;
+ struct ida *bl_ida = &bl->ida;
+
+ list_for_each_entry(connector, &bl->connectors, head) {
+ if (connector->id >= 0)
+ ida_simple_remove(bl_ida, connector->id);
+ }
- if (drm->backlight) {
- backlight_device_unregister(drm->backlight);
- drm->backlight = NULL;
+ if (bl->device) {
+ backlight_device_unregister(bl->device);
+ bl->device = NULL;
}
+
+ kfree(drm->backlight);
+ drm->backlight = NULL;
}
diff --git a/drm/nouveau/nouveau_drv.h b/drm/nouveau/nouveau_drv.h
index 822a021..b6bc97c 100644
--- a/drm/nouveau/nouveau_drv.h
+++ b/drm/nouveau/nouveau_drv.h
@@ -103,6 +103,8 @@ nouveau_cli(struct drm_file *fpriv)
#include <nvif/object.h>
#include <nvif/device.h>
+struct nouveau_backlight;
+
extern int nouveau_runtime_pm;
struct nouveau_drm {
@@ -160,7 +162,7 @@ struct nouveau_drm {
/* modesetting */
struct nvbios vbios;
struct nouveau_display *display;
- struct backlight_device *backlight;
+ struct nouveau_backlight *backlight;
/* power management */
struct nouveau_hwmon *hwmon;

Event Timeline

pmoreau created this object with visibility "Public (No Login Required)".
pmoreau created this object with edit policy "Nouveau (Project)".

[ 0.000000] Linux version 4.7.0-rc5-nouveau-69488-gc11dea5 (pmoreau@Normandy) (gcc version 6.1.1 20160802 (GCC) ) #25 SMP PREEMPT Fri Aug 5 18:15:57 CEST 2016
[ 0.000000] Command line: initrd=\10c24563ac9e431a983ea6b33bb38f27\4.7.0-rc5-nouveau-69488-gc11dea5\initrd root=UUID="cd1828b1-4f94-42dc-bebe-c8d9a7767645" rootflags=subvol=@ rw init=/usr/lib/systemd/systemd quiet
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.000000] x86/fpu: Enabled xstate features 0x3, context size is 576 bytes, using 'standard' format.
[ 0.000000] x86/fpu: Using 'eager' FPU context switches.
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000ae6b4fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ae6b5000-0x00000000ae6b5fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ae6b6000-0x00000000ae6c7fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ae6c8000-0x00000000ae6ccfff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ae6cd000-0x00000000ae6dcfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ae6dd000-0x00000000ae6ddfff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ae6de000-0x00000000ae6f7fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ae6f8000-0x00000000ae6f8fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ae6f9000-0x00000000ae72afff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ae72b000-0x00000000ae92bfff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000ae92c000-0x00000000aefa7fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000aefa8000-0x00000000aefa8fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000aefa9000-0x00000000aeffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000af000000-0x00000000beffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf000000-0x00000000bf00cfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf00d000-0x00000000bf00dfff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf00e000-0x00000000bf07dfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf07e000-0x00000000bf080fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf081000-0x00000000bf081fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf082000-0x00000000bf083fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf084000-0x00000000bf086fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf087000-0x00000000bf08bfff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf08c000-0x00000000bf08dfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf08e000-0x00000000bf08efff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf08f000-0x00000000bf096fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf097000-0x00000000bf098fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000bf099000-0x00000000bf09afff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf09b000-0x00000000bf09cfff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000bf09d000-0x00000000bf0e0fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf0e1000-0x00000000bf0e4fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf0e5000-0x00000000bf0ecfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf0ed000-0x00000000bf0effff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf0f0000-0x00000000bf0f2fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf0f3000-0x00000000bf0f3fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf0f4000-0x00000000bf1f8fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf1f9000-0x00000000bf1f9fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf1fa000-0x00000000bf1fafff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf1fb000-0x00000000bf210fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf211000-0x00000000bf214fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf215000-0x00000000bf215fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf216000-0x00000000bf22afff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf22b000-0x00000000bf22dfff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf22e000-0x00000000bf243fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf244000-0x00000000bf248fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf249000-0x00000000bf24afff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf24b000-0x00000000bf24bfff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf24c000-0x00000000bf707fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf708000-0x00000000bf70bfff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf70c000-0x00000000bf70dfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf70e000-0x00000000bf70efff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf70f000-0x00000000bf713fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf714000-0x00000000bf715fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf716000-0x00000000bf717fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bf718000-0x00000000bf718fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bf719000-0x00000000bfe92fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bfe93000-0x00000000bfe93fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bfe94000-0x00000000bfe9dfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bfe9e000-0x00000000bfe9efff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000bfe9f000-0x00000000bfec1fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bfec2000-0x00000000bfec5fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000bfec6000-0x00000000bfeccfff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000bfecd000-0x00000000bfedefff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000bfedf000-0x00000000bfee0fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bfee1000-0x00000000bfeeefff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000bfeef000-0x00000000bfef8fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bfef9000-0x00000000bfefffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000e7400000-0x00000000e7400fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ffc00000-0x00000000ffffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000013fffffff] usable
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] e820: update [mem 0xad36a018-0xad379e57] usable ==> usable
[ 0.000000] extended physical RAM map:
[ 0.000000] reserve setup_data: [mem 0x0000000000000000-0x000000000008efff] usable
[ 0.000000] reserve setup_data: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x0000000000090000-0x000000000009ffff] usable
[ 0.000000] reserve setup_data: [mem 0x0000000000100000-0x00000000ad36a017] usable
[ 0.000000] reserve setup_data: [mem 0x00000000ad36a018-0x00000000ad379e57] usable
[ 0.000000] reserve setup_data: [mem 0x00000000ad379e58-0x00000000ae6b4fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000ae6b5000-0x00000000ae6b5fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000ae6b6000-0x00000000ae6c7fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000ae6c8000-0x00000000ae6ccfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000ae6cd000-0x00000000ae6dcfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000ae6dd000-0x00000000ae6ddfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000ae6de000-0x00000000ae6f7fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000ae6f8000-0x00000000ae6f8fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000ae6f9000-0x00000000ae72afff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000ae72b000-0x00000000ae92bfff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x00000000ae92c000-0x00000000aefa7fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000aefa8000-0x00000000aefa8fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000aefa9000-0x00000000aeffffff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000af000000-0x00000000beffffff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf000000-0x00000000bf00cfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf00d000-0x00000000bf00dfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf00e000-0x00000000bf07dfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf07e000-0x00000000bf080fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf081000-0x00000000bf081fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf082000-0x00000000bf083fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf084000-0x00000000bf086fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf087000-0x00000000bf08bfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf08c000-0x00000000bf08dfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf08e000-0x00000000bf08efff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf08f000-0x00000000bf096fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf097000-0x00000000bf098fff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x00000000bf099000-0x00000000bf09afff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf09b000-0x00000000bf09cfff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x00000000bf09d000-0x00000000bf0e0fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf0e1000-0x00000000bf0e4fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf0e5000-0x00000000bf0ecfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf0ed000-0x00000000bf0effff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf0f0000-0x00000000bf0f2fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf0f3000-0x00000000bf0f3fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf0f4000-0x00000000bf1f8fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf1f9000-0x00000000bf1f9fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf1fa000-0x00000000bf1fafff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf1fb000-0x00000000bf210fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf211000-0x00000000bf214fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf215000-0x00000000bf215fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf216000-0x00000000bf22afff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf22b000-0x00000000bf22dfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf22e000-0x00000000bf243fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf244000-0x00000000bf248fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf249000-0x00000000bf24afff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf24b000-0x00000000bf24bfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf24c000-0x00000000bf707fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf708000-0x00000000bf70bfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf70c000-0x00000000bf70dfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf70e000-0x00000000bf70efff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf70f000-0x00000000bf713fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf714000-0x00000000bf715fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf716000-0x00000000bf717fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bf718000-0x00000000bf718fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bf719000-0x00000000bfe92fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bfe93000-0x00000000bfe93fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bfe94000-0x00000000bfe9dfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bfe9e000-0x00000000bfe9efff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bfe9f000-0x00000000bfec1fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bfec2000-0x00000000bfec5fff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x00000000bfec6000-0x00000000bfeccfff] ACPI data
[ 0.000000] reserve setup_data: [mem 0x00000000bfecd000-0x00000000bfedefff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x00000000bfedf000-0x00000000bfee0fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bfee1000-0x00000000bfeeefff] ACPI data
[ 0.000000] reserve setup_data: [mem 0x00000000bfeef000-0x00000000bfef8fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bfef9000-0x00000000bfefffff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000e7400000-0x00000000e7400fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000ffc00000-0x00000000ffffffff] reserved
[ 0.000000] reserve setup_data: [mem 0x0000000100000000-0x000000013fffffff] usable
[ 0.000000] efi: EFI v1.10 by Apple
[ 0.000000] efi: ACPI=0xbfeee000 ACPI 2.0=0xbfeee014 SMBIOS=0xbfec3000
[ 0.000000] SMBIOS 2.4 present.
[ 0.000000] DMI: Apple Inc. MacBookPro5,3/Mac-F22587C8, BIOS MBP53.88Z.00AC.B03.0906151647 06/15/09
[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.000000] e820: last_pfn = 0x140000 max_arch_pfn = 0x400000000
[ 0.000000] MTRR default type: uncachable
[ 0.000000] MTRR fixed ranges enabled:
[ 0.000000] 00000-9FFFF write-back
[ 0.000000] A0000-FFFFF uncachable
[ 0.000000] MTRR variable ranges enabled:
[ 0.000000] 0 disabled
[ 0.000000] 1 base 000000000 mask F80000000 write-back
[ 0.000000] 2 base 080000000 mask FC0000000 write-back
[ 0.000000] 3 base 100000000 mask FC0000000 write-back
[ 0.000000] 4 base 0BFF00000 mask FFFF00000 uncachable
[ 0.000000] 5 disabled
[ 0.000000] 6 disabled
[ 0.000000] 7 disabled
[ 0.000000] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WC UC- WT
[ 0.000000] e820: update [mem 0xbff00000-0xffffffff] usable ==> reserved
[ 0.000000] e820: last_pfn = 0xbfef9 max_arch_pfn = 0x400000000
[ 0.000000] Scanning 1 areas for low memory corruption
[ 0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[ 0.000000] BRK [0x020e8000, 0x020e8fff] PGTABLE
[ 0.000000] BRK [0x020e9000, 0x020e9fff] PGTABLE
[ 0.000000] BRK [0x020ea000, 0x020eafff] PGTABLE
[ 0.000000] BRK [0x020eb000, 0x020ebfff] PGTABLE
[ 0.000000] BRK [0x020ec000, 0x020ecfff] PGTABLE
[ 0.000000] BRK [0x020ed000, 0x020edfff] PGTABLE
[ 0.000000] RAMDISK: [mem 0x7fb50000-0x7fffffff]
[ 0.000000] ACPI: Early table checksum verification disabled
[ 0.000000] ACPI: RSDP 0x00000000BFEEE014 000024 (v02 APPLE )
[ 0.000000] ACPI: XSDT 0x00000000BFEEE1C0 000074 (v01 APPLE Apple00 000000AC 01000013)
[ 0.000000] ACPI: FACP 0x00000000BFEEC000 0000F4 (v04 APPLE Apple00 000000AC Loki 0000005F)
[ 0.000000] ACPI: DSDT 0x00000000BFEC6000 006238 (v01 APPLE MacBookP 00050003 INTL 20061109)
[ 0.000000] ACPI: FACS 0x00000000BFECD000 000040
[ 0.000000] ACPI: FACS 0x00000000BFECD000 000040
[ 0.000000] ACPI: HPET 0x00000000BFEEB000 000038 (v01 APPLE Apple00 00000001 Loki 0000005F)
[ 0.000000] ACPI: APIC 0x00000000BFEEA000 000068 (v01 APPLE Apple00 00000001 Loki 0000005F)
[ 0.000000] ACPI: APIC 0x00000000BFEE9000 000068 (v02 APPLE Apple00 00000001 Loki 0000005F)
[ 0.000000] ACPI: MCFG 0x00000000BFEE8000 00003C (v01 APPLE Apple00 00000001 Loki 0000005F)
[ 0.000000] ACPI: ASF! 0x00000000BFEE7000 0000A5 (v32 APPLE Apple00 00000001 Loki 0000005F)
[ 0.000000] ACPI: SBST 0x00000000BFEE6000 000030 (v01 APPLE Apple00 00000001 Loki 0000005F)
[ 0.000000] ACPI: ECDT 0x00000000BFEE5000 000053 (v01 APPLE Apple00 00000001 Loki 0000005F)
[ 0.000000] ACPI: SSDT 0x00000000BFEE2000 00023A (v00 SataAhci 00001000 INTL 20061109)
[ 0.000000] ACPI: SSDT 0x00000000BFEE1000 0004DC (v01 APPLE CpuPm 00003000 INTL 20061109)
[ 0.000000] ACPI: BIOS bug: multiple APIC/MADT found, using 0
[ 0.000000] ACPI: If "acpi_apic_instance=2" works better, notify linux-acpi@vger.kernel.org
[ 0.000000] ACPI: DMI detected to setup _OSI("Darwin"): Apple hardware
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] No NUMA configuration found
[ 0.000000] Faking a node at [mem 0x0000000000000000-0x000000013fffffff]
[ 0.000000] NODE_DATA(0) allocated [mem 0x13fff5000-0x13fff8fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.000000] DMA32 [mem 0x0000000001000000-0x00000000ffffffff]
[ 0.000000] Normal [mem 0x0000000100000000-0x000000013fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000001000-0x000000000008efff]
[ 0.000000] node 0: [mem 0x0000000000090000-0x000000000009ffff]
[ 0.000000] node 0: [mem 0x0000000000100000-0x00000000ae6b4fff]
[ 0.000000] node 0: [mem 0x00000000ae6b6000-0x00000000ae6c7fff]
[ 0.000000] node 0: [mem 0x00000000ae6cd000-0x00000000ae6dcfff]
[ 0.000000] node 0: [mem 0x00000000ae6de000-0x00000000ae6f7fff]
[ 0.000000] node 0: [mem 0x00000000ae6f9000-0x00000000ae72afff]
[ 0.000000] node 0: [mem 0x00000000ae92c000-0x00000000aefa7fff]
[ 0.000000] node 0: [mem 0x00000000aefa9000-0x00000000aeffffff]
[ 0.000000] node 0: [mem 0x00000000bf000000-0x00000000bf00cfff]
[ 0.000000] node 0: [mem 0x00000000bf00e000-0x00000000bf07dfff]
[ 0.000000] node 0: [mem 0x00000000bf081000-0x00000000bf081fff]
[ 0.000000] node 0: [mem 0x00000000bf084000-0x00000000bf086fff]
[ 0.000000] node 0: [mem 0x00000000bf08c000-0x00000000bf08dfff]
[ 0.000000] node 0: [mem 0x00000000bf08f000-0x00000000bf096fff]
[ 0.000000] node 0: [mem 0x00000000bf099000-0x00000000bf09afff]
[ 0.000000] node 0: [mem 0x00000000bf09d000-0x00000000bf0e0fff]
[ 0.000000] node 0: [mem 0x00000000bf0e5000-0x00000000bf0ecfff]
[ 0.000000] node 0: [mem 0x00000000bf0f0000-0x00000000bf0f2fff]
[ 0.000000] node 0: [mem 0x00000000bf0f4000-0x00000000bf1f8fff]
[ 0.000000] node 0: [mem 0x00000000bf1fa000-0x00000000bf1fafff]
[ 0.000000] node 0: [mem 0x00000000bf211000-0x00000000bf214fff]
[ 0.000000] node 0: [mem 0x00000000bf216000-0x00000000bf22afff]
[ 0.000000] node 0: [mem 0x00000000bf22e000-0x00000000bf243fff]
[ 0.000000] node 0: [mem 0x00000000bf249000-0x00000000bf24afff]
[ 0.000000] node 0: [mem 0x00000000bf24c000-0x00000000bf707fff]
[ 0.000000] node 0: [mem 0x00000000bf70c000-0x00000000bf70dfff]
[ 0.000000] node 0: [mem 0x00000000bf70f000-0x00000000bf713fff]
[ 0.000000] node 0: [mem 0x00000000bf716000-0x00000000bf717fff]
[ 0.000000] node 0: [mem 0x00000000bf719000-0x00000000bfe92fff]
[ 0.000000] node 0: [mem 0x00000000bfe94000-0x00000000bfe9dfff]
[ 0.000000] node 0: [mem 0x00000000bfe9f000-0x00000000bfec1fff]
[ 0.000000] node 0: [mem 0x00000000bfedf000-0x00000000bfee0fff]
[ 0.000000] node 0: [mem 0x00000000bfeef000-0x00000000bfef8fff]
[ 0.000000] node 0: [mem 0x0000000100000000-0x000000013fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000013fffffff]
[ 0.000000] On node 0 totalpages: 982047
[ 0.000000] DMA zone: 64 pages used for memmap
[ 0.000000] DMA zone: 22 pages reserved
[ 0.000000] DMA zone: 3998 pages, LIFO batch:0
[ 0.000000] DMA32 zone: 11187 pages used for memmap
[ 0.000000] DMA32 zone: 715905 pages, LIFO batch:31
[ 0.000000] Normal zone: 4096 pages used for memmap
[ 0.000000] Normal zone: 262144 pages, LIFO batch:31
[ 0.000000] ACPI: PM-Timer IO Port: 0x408
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[ 0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] ACPI: HPET id: 0x10de8201 base: 0xfed00000
[ 0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
[ 0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.000000] PM: Registered nosave memory: [mem 0x0008f000-0x0008ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000fffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xad36a000-0xad36afff]
[ 0.000000] PM: Registered nosave memory: [mem 0xad379000-0xad379fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xae6b5000-0xae6b5fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xae6c8000-0xae6ccfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xae6dd000-0xae6ddfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xae6f8000-0xae6f8fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xae72b000-0xae92bfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xaefa8000-0xaefa8fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xaf000000-0xbeffffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf00d000-0xbf00dfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf07e000-0xbf080fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf082000-0xbf083fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf087000-0xbf08bfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf08e000-0xbf08efff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf097000-0xbf098fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf09b000-0xbf09cfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf0e1000-0xbf0e4fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf0ed000-0xbf0effff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf0f3000-0xbf0f3fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf1f9000-0xbf1f9fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf1fb000-0xbf210fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf215000-0xbf215fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf22b000-0xbf22dfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf244000-0xbf248fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf24b000-0xbf24bfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf708000-0xbf70bfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf70e000-0xbf70efff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf714000-0xbf715fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbf718000-0xbf718fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbfe93000-0xbfe93fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbfe9e000-0xbfe9efff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbfec2000-0xbfec5fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbfec6000-0xbfeccfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbfecd000-0xbfedefff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbfee1000-0xbfeeefff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbfef9000-0xbfefffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xbff00000-0xe73fffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xe7400000-0xe7400fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xe7401000-0xffbfffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xffc00000-0xffffffff]
[ 0.000000] e820: [mem 0xbff00000-0xe73fffff] available for PCI devices
[ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370452778343963 ns
[ 0.000000] setup_percpu: NR_CPUS:128 nr_cpumask_bits:128 nr_cpu_ids:2 nr_node_ids:1
[ 0.000000] percpu: Embedded 32 pages/cpu @ffff88013fc00000 s93352 r8192 d29528 u1048576
[ 0.000000] pcpu-alloc: s93352 r8192 d29528 u1048576 alloc=1*2097152
[ 0.000000] pcpu-alloc: [0] 0 1
[ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 966678
[ 0.000000] Policy zone: Normal
[ 0.000000] Kernel command line: initrd=\10c24563ac9e431a983ea6b33bb38f27\4.7.0-rc5-nouveau-69488-gc11dea5\initrd root=UUID="cd1828b1-4f94-42dc-bebe-c8d9a7767645" rootflags=subvol=@ rw init=/usr/lib/systemd/systemd quiet
[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] Memory: 3733896K/3928188K available (6718K kernel code, 1074K rwdata, 2712K rodata, 1200K init, 2708K bss, 194292K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Build-time adjustment of leaf fanout to 64.
[ 0.000000] RCU restricting CPUs from NR_CPUS=128 to nr_cpu_ids=2.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=2
[ 0.000000] NR_IRQS:8448 nr_irqs:440 16
[ 0.000000] Console: colour dummy device 80x25
[ 0.000000] console [tty0] enabled
[ 0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
[ 0.000000] hpet clockevent registered
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] tsc: Detected 2786.037 MHz processor
[ 0.003345] Calibrating delay loop (skipped), value calculated using timer frequency.. 5574.24 BogoMIPS (lpj=9286790)
[ 0.003348] pid_max: default: 32768 minimum: 301
[ 0.003358] ACPI: Core revision 20160422
[ 0.044342] Security Framework initialized
[ 0.044345] Yama: becoming mindful.
[ 0.044597] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.046768] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.047756] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.047761] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.048125] CPU: Physical Processor ID: 0
[ 0.048127] CPU: Processor Core ID: 0
[ 0.048129] mce: CPU supports 6 MCE banks
[ 0.048137] CPU0: Thermal monitoring enabled (TM2)
[ 0.048142] process: using mwait in idle threads
[ 0.048147] Last level iTLB entries: 4KB 128, 2MB 4, 4MB 4
[ 0.048148] Last level dTLB entries: 4KB 256, 2MB 0, 4MB 32, 1GB 0
[ 0.048514] Freeing SMP alternatives memory: 28K (ffffffff81e3a000 - ffffffff81e41000)
[ 0.049826] ftrace: allocating 24873 entries in 98 pages
[ 0.056766] smpboot: Max logical packages: 1
[ 0.056769] smpboot: APIC(0) Converting physical 0 to logical package 0
[ 0.057214] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.093333] smpboot: CPU0: Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz (family: 0x6, model: 0x17, stepping: 0xa)
[ 0.093333] Performance Events: PEBS fmt0+, 4-deep LBR, Core2 events, Intel PMU driver.
[ 0.093333] ... version: 2
[ 0.093333] ... bit width: 40
[ 0.093333] ... generic registers: 2
[ 0.093333] ... value mask: 000000ffffffffff
[ 0.093333] ... max period: 000000007fffffff
[ 0.093333] ... fixed-purpose events: 3
[ 0.093333] ... event mask: 0000000700000003
[ 0.113411] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[ 0.130017] x86: Booting SMP configuration:
[ 0.130018] .... node #0, CPUs: #1
[ 0.215362] x86: Booted up 1 node, 2 CPUs
[ 0.215362] smpboot: Total of 2 processors activated (11148.37 BogoMIPS)
[ 0.216904] devtmpfs: initialized
[ 0.216904] x86/mm: Memory block size: 128MB
[ 0.223355] PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes)
[ 0.223357] PM: Registering ACPI NVS region [mem 0xae72b000-0xae92bfff] (2101248 bytes)
[ 0.223384] PM: Registering ACPI NVS region [mem 0xbf097000-0xbf098fff] (8192 bytes)
[ 0.223386] PM: Registering ACPI NVS region [mem 0xbf09b000-0xbf09cfff] (8192 bytes)
[ 0.223389] PM: Registering ACPI NVS region [mem 0xbfec2000-0xbfec5fff] (16384 bytes)
[ 0.223390] PM: Registering ACPI NVS region [mem 0xbfecd000-0xbfedefff] (73728 bytes)
[ 0.223395] reboot: Apple MacBookPro5 series board detected. Selecting PCI-method for reboots.
[ 0.223453] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
[ 0.223483] xor: measuring software checksum speed
[ 0.256669] prefetch64-sse: 15602.400 MB/sec
[ 0.287972] generic_sse: 13168.800 MB/sec
[ 0.287973] xor: using function: prefetch64-sse (15602.400 MB/sec)
[ 0.287977] pinctrl core: initialized pinctrl subsystem
[ 0.288055] RTC time: 17:26:50, date: 08/05/16
[ 0.288161] NET: Registered protocol family 16
[ 0.296670] cpuidle: using governor ladder
[ 0.310003] cpuidle: using governor menu
[ 0.310054] ACPI: bus type PCI registered
[ 0.310056] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[ 0.310310] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xf0000000-0xffffffff] (base 0xf0000000)
[ 0.310314] PCI: not using MMCONFIG
[ 0.310315] PCI: Using configuration type 1 for base access
[ 0.323367] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 0.380005] raid6: sse2x1 gen() 4531 MB/s
[ 0.436671] raid6: sse2x1 xor() 4786 MB/s
[ 0.493343] raid6: sse2x2 gen() 4928 MB/s
[ 0.550004] raid6: sse2x2 xor() 5876 MB/s
[ 0.606670] raid6: sse2x4 gen() 8268 MB/s
[ 0.663338] raid6: sse2x4 xor() 6669 MB/s
[ 0.663339] raid6: using algorithm sse2x4 gen() 8268 MB/s
[ 0.663341] raid6: .... xor() 6669 MB/s, rmw enabled
[ 0.663342] raid6: using ssse3x2 recovery algorithm
[ 0.663369] ACPI: Disabled all _OSI OS vendors
[ 0.663371] ACPI: Added _OSI(Module Device)
[ 0.663372] ACPI: Added _OSI(Processor Device)
[ 0.663373] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.663375] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.663376] ACPI: Added _OSI(Darwin)
[ 0.663382] ACPI : EC: EC description table is found, configuring boot EC
[ 0.663384] ACPI : EC: EC started
[ 0.667435] ACPI: 3 ACPI AML tables successfully acquired and loaded