mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-27 01:11:06 +00:00
parent
3697f50bd3
commit
4ca8e31e00
@ -128,6 +128,7 @@ linux-x.x.x/drivers/gpu/drm/i915/intel_lvds.c
|
|||||||
linux-x.x.x/drivers/gpu/drm/i915/intel_mocs.c
|
linux-x.x.x/drivers/gpu/drm/i915/intel_mocs.c
|
||||||
linux-x.x.x/drivers/gpu/drm/i915/intel_mocs.h
|
linux-x.x.x/drivers/gpu/drm/i915/intel_mocs.h
|
||||||
linux-x.x.x/drivers/gpu/drm/i915/intel_modes.c
|
linux-x.x.x/drivers/gpu/drm/i915/intel_modes.c
|
||||||
|
linux-x.x.x/drivers/gpu/drm/i915/intel_opregion.c
|
||||||
linux-x.x.x/drivers/gpu/drm/i915/intel_opregion.h
|
linux-x.x.x/drivers/gpu/drm/i915/intel_opregion.h
|
||||||
linux-x.x.x/drivers/gpu/drm/i915/intel_overlay.c
|
linux-x.x.x/drivers/gpu/drm/i915/intel_overlay.c
|
||||||
linux-x.x.x/drivers/gpu/drm/i915/intel_panel.c
|
linux-x.x.x/drivers/gpu/drm/i915/intel_panel.c
|
||||||
|
@ -25,3 +25,4 @@ INC_DIR += $(SRC_DIR)/include \
|
|||||||
|
|
||||||
CC_OPT += -U__linux__ -D__KERNEL__
|
CC_OPT += -U__linux__ -D__KERNEL__
|
||||||
CC_OPT += -DCONFIG_DRM_I915_KMS -DCONFIG_I2C -DCONFIG_I2C_BOARDINFO
|
CC_OPT += -DCONFIG_DRM_I915_KMS -DCONFIG_I2C -DCONFIG_I2C_BOARDINFO
|
||||||
|
CC_OPT += -DCONFIG_ACPI
|
||||||
|
@ -1 +1 @@
|
|||||||
b88acdf93d8db71180a25937fba45ec6b39a2841
|
5ee7d9befaff281fec480e2257f302c76fe85126
|
||||||
|
@ -1771,3 +1771,36 @@ int stop_machine(cpu_stop_fn_t a, void *b, const struct cpumask *c)
|
|||||||
TRACE_AND_STOP;
|
TRACE_AND_STOP;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int unregister_acpi_notifier(struct notifier_block *nb)
|
||||||
|
{
|
||||||
|
TRACE_AND_STOP;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct acpi_device_id * i2c_acpi_match_device(const struct acpi_device_id *matches,
|
||||||
|
struct i2c_client *client)
|
||||||
|
{
|
||||||
|
TRACE_AND_STOP;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int i2c_acpi_notify(struct notifier_block *nb, unsigned long value, void *arg)
|
||||||
|
{
|
||||||
|
TRACE_AND_STOP;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct notifier_block i2c_acpi_notifier = {
|
||||||
|
.notifier_call = i2c_acpi_notify,
|
||||||
|
};
|
||||||
|
|
||||||
|
void intel_unregister_dsm_handler(void)
|
||||||
|
{
|
||||||
|
TRACE_AND_STOP;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum acpi_backlight_type acpi_video_get_backlight_type(void)
|
||||||
|
{
|
||||||
|
TRACE_AND_STOP;
|
||||||
|
}
|
||||||
|
@ -1231,10 +1231,30 @@ struct acpi_device;
|
|||||||
struct acpi_dev_node { struct acpi_device *companion; };
|
struct acpi_dev_node { struct acpi_device *companion; };
|
||||||
|
|
||||||
|
|
||||||
|
/*********************
|
||||||
|
** acpi/acpi_bus.h **
|
||||||
|
*********************/
|
||||||
|
|
||||||
|
typedef char acpi_bus_id[8];
|
||||||
|
typedef char acpi_device_class[20];
|
||||||
|
|
||||||
|
struct acpi_bus_event {
|
||||||
|
struct list_head node;
|
||||||
|
acpi_device_class device_class;
|
||||||
|
acpi_bus_id bus_id;
|
||||||
|
u32 type;
|
||||||
|
u32 data;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
** linux/io.h **
|
** linux/io.h **
|
||||||
****************/
|
****************/
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MEMREMAP_WB = 1 << 0,
|
||||||
|
};
|
||||||
|
|
||||||
#define writel(value, addr) (*(volatile uint32_t *)(addr) = (value))
|
#define writel(value, addr) (*(volatile uint32_t *)(addr) = (value))
|
||||||
#define readl(addr) (*(volatile uint32_t *)(addr))
|
#define readl(addr) (*(volatile uint32_t *)(addr))
|
||||||
|
|
||||||
@ -1563,8 +1583,6 @@ void vga_put(struct pci_dev *pdev, unsigned int rsrc);
|
|||||||
** linux/notifier.h **
|
** linux/notifier.h **
|
||||||
**********************/
|
**********************/
|
||||||
|
|
||||||
#define NOTIFY_DONE 0x0000
|
|
||||||
|
|
||||||
/* needed by intel_lvds.c */
|
/* needed by intel_lvds.c */
|
||||||
|
|
||||||
struct notifier_block;
|
struct notifier_block;
|
||||||
@ -1573,7 +1591,12 @@ typedef int (*notifier_fn_t)(struct notifier_block *nb, unsigned long action, vo
|
|||||||
|
|
||||||
struct notifier_block { notifier_fn_t notifier_call; };
|
struct notifier_block { notifier_fn_t notifier_call; };
|
||||||
|
|
||||||
enum { NOTIFY_OK = 0x0001 };
|
enum {
|
||||||
|
NOTIFY_DONE = 0x0000,
|
||||||
|
NOTIFY_OK = 0x0001,
|
||||||
|
NOTIFY_STOP_MASK = 0x8000,
|
||||||
|
NOTIFY_BAD = (NOTIFY_STOP_MASK|0x0002),
|
||||||
|
};
|
||||||
|
|
||||||
struct atomic_notifier_head { unsigned dummy; };
|
struct atomic_notifier_head { unsigned dummy; };
|
||||||
|
|
||||||
@ -1605,9 +1628,32 @@ static inline bool vgacon_text_force(void) { return false; }
|
|||||||
** acpi/video.h **
|
** acpi/video.h **
|
||||||
******************/
|
******************/
|
||||||
|
|
||||||
|
#define ACPI_VIDEO_CLASS "video"
|
||||||
|
|
||||||
int acpi_video_register(void);
|
int acpi_video_register(void);
|
||||||
void acpi_video_unregister(void);
|
void acpi_video_unregister(void);
|
||||||
|
|
||||||
|
enum acpi_backlight_type {
|
||||||
|
acpi_backlight_native = 3,
|
||||||
|
};
|
||||||
|
enum acpi_backlight_type acpi_video_get_backlight_type(void);
|
||||||
|
|
||||||
|
|
||||||
|
/******************
|
||||||
|
** acpi/video.h **
|
||||||
|
******************/
|
||||||
|
|
||||||
|
int register_acpi_notifier(struct notifier_block *);
|
||||||
|
int unregister_acpi_notifier(struct notifier_block *);
|
||||||
|
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
** linux/memremap.h **
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
void *memremap(resource_size_t offset, size_t size, unsigned long flags);
|
||||||
|
void memunmap(void *addr);
|
||||||
|
|
||||||
|
|
||||||
/*****************
|
/*****************
|
||||||
** asm/ioctl.h **
|
** asm/ioctl.h **
|
||||||
|
@ -1121,17 +1121,33 @@ void cpu_relax(void)
|
|||||||
** drivers/pci/rom.c **
|
** drivers/pci/rom.c **
|
||||||
***********************/
|
***********************/
|
||||||
|
|
||||||
|
static Genode::Constructible<Genode::Attached_io_mem_dataspace> video_rom;
|
||||||
|
|
||||||
void __iomem __must_check *pci_map_rom(struct pci_dev *pdev, size_t *size)
|
void __iomem __must_check *pci_map_rom(struct pci_dev *pdev, size_t *size)
|
||||||
{
|
{
|
||||||
|
/* solely available in BIOS legacy mode ... */
|
||||||
enum { VIDEO_ROM_BASE = 0xC0000, VIDEO_ROM_SIZE = 0x20000 };
|
enum { VIDEO_ROM_BASE = 0xC0000, VIDEO_ROM_SIZE = 0x20000 };
|
||||||
|
|
||||||
static Genode::Attached_io_mem_dataspace vrom(Lx_kit::env().env(),
|
BUG_ON(video_rom.constructed());
|
||||||
VIDEO_ROM_BASE, VIDEO_ROM_SIZE);
|
|
||||||
*size = VIDEO_ROM_SIZE;
|
try {
|
||||||
return vrom.local_addr<void*>();
|
video_rom.construct(Lx_kit::env().env(), VIDEO_ROM_BASE, VIDEO_ROM_SIZE);
|
||||||
|
*size = VIDEO_ROM_SIZE;
|
||||||
|
return video_rom->local_addr<void*>();
|
||||||
|
} catch (...) {
|
||||||
|
Genode::warning("could not map ",
|
||||||
|
Genode::Hex_range<Genode::addr_t>(VIDEO_ROM_BASE,
|
||||||
|
VIDEO_ROM_SIZE),
|
||||||
|
" video rom region");
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom) {}
|
void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom) {
|
||||||
|
BUG_ON(!video_rom.constructed());
|
||||||
|
video_rom.destruct();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************
|
/******************
|
||||||
@ -1924,4 +1940,59 @@ u64 local_clock(void)
|
|||||||
return jiffies_to_nsecs(jiffies);
|
return jiffies_to_nsecs(jiffies);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
** ACPI related function called by Intel driver (-DCONFIG_ACPI) **
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
static Genode::Constructible<Genode::Attached_io_mem_dataspace> opregion;
|
||||||
|
|
||||||
|
void *memremap(resource_size_t offset, size_t size, unsigned long flags)
|
||||||
|
{
|
||||||
|
Genode::addr_t paddr = offset & ~0xfffUL;
|
||||||
|
Genode::addr_t psize = size + (offset & 0xfff);
|
||||||
|
|
||||||
|
BUG_ON(opregion.constructed());
|
||||||
|
|
||||||
|
try {
|
||||||
|
opregion.construct(Lx_kit::env().env(), paddr, psize);
|
||||||
|
return opregion->local_addr<uint8_t>() + (offset & 0xfff);
|
||||||
|
} catch (...) {
|
||||||
|
Genode::warning("could not map ",
|
||||||
|
Genode::Hex_range<Genode::addr_t>(offset, size),
|
||||||
|
" ACPI opregion");
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void memunmap(void *addr)
|
||||||
|
{
|
||||||
|
BUG_ON(!opregion.constructed());
|
||||||
|
opregion.destruct();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void intel_register_dsm_handler(void)
|
||||||
|
{
|
||||||
|
Genode::warning(__func__, " called");
|
||||||
|
}
|
||||||
|
|
||||||
|
void i2c_acpi_register_devices(struct i2c_adapter *adap)
|
||||||
|
{
|
||||||
|
Genode::warning(__func__, " called");
|
||||||
|
}
|
||||||
|
|
||||||
|
int register_acpi_notifier(struct notifier_block *nb)
|
||||||
|
{
|
||||||
|
Genode::warning(__func__, " called");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int acpi_reconfig_notifier_register(struct notifier_block *nb)
|
||||||
|
{
|
||||||
|
Genode::warning(__func__, " called");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
|
@ -36,6 +36,7 @@ enum { PCI_ANY_ID = ~0U };
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
PCI_D0 = 0,
|
PCI_D0 = 0,
|
||||||
PCI_D1 = 1,
|
PCI_D1 = 1,
|
||||||
|
PCI_D2 = 2,
|
||||||
PCI_D3hot = 3,
|
PCI_D3hot = 3,
|
||||||
PCI_D3cold = 4,
|
PCI_D3cold = 4,
|
||||||
} pci_power_t;
|
} pci_power_t;
|
||||||
|
Loading…
Reference in New Issue
Block a user