sync with OpenBSD -current
This commit is contained in:
parent
ffd019c293
commit
5c4b291e07
28 changed files with 116 additions and 226 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: if_mvneta.c,v 1.31 2023/11/10 15:51:19 bluhm Exp $ */
|
||||
/* $OpenBSD: if_mvneta.c,v 1.32 2024/03/21 23:12:33 patrick Exp $ */
|
||||
/* $NetBSD: if_mvneta.c,v 1.41 2015/04/15 10:15:40 hsuenaga Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2007, 2008, 2013 KIYOHARA Takashi
|
||||
|
@ -502,7 +502,9 @@ mvneta_attach(struct device *parent, struct device *self, void *aux)
|
|||
}
|
||||
|
||||
if (!sc->sc_fixed_link) {
|
||||
sc->sc_phy = OF_getpropint(faa->fa_node, "phy", 0);
|
||||
sc->sc_phy = OF_getpropint(faa->fa_node, "phy-handle", 0);
|
||||
if (!sc->sc_phy)
|
||||
sc->sc_phy = OF_getpropint(faa->fa_node, "phy", 0);
|
||||
node = OF_getnodebyphandle(sc->sc_phy);
|
||||
if (!node) {
|
||||
printf(": cannot find phy in fdt\n");
|
||||
|
|
|
@ -249,6 +249,38 @@ static int __uao_rw(struct uvm_object *uao, loff_t off,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int uao_read_to_iosys_map(struct uvm_object *uao, loff_t off,
|
||||
struct iosys_map *map, size_t map_off, size_t len)
|
||||
{
|
||||
struct pglist plist;
|
||||
struct vm_page *page;
|
||||
vaddr_t pgoff = trunc_page(off);
|
||||
size_t olen = round_page(len);
|
||||
|
||||
TAILQ_INIT(&plist);
|
||||
if (uvm_obj_wire(uao, pgoff, olen, &plist))
|
||||
return -ENOMEM;
|
||||
|
||||
TAILQ_FOREACH(page, &plist, pageq) {
|
||||
unsigned int this =
|
||||
min_t(size_t, PAGE_SIZE - offset_in_page(off), len);
|
||||
void *vaddr;
|
||||
|
||||
vaddr = kmap(page);
|
||||
iosys_map_memcpy_to(map, map_off, vaddr + offset_in_page(off),
|
||||
this);
|
||||
kunmap_va(vaddr);
|
||||
|
||||
len -= this;
|
||||
map_off += this;
|
||||
off = 0;
|
||||
}
|
||||
|
||||
uvm_obj_unwire(uao, pgoff, olen);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int uao_read(struct uvm_object *uao, loff_t off, void *dst, size_t len)
|
||||
{
|
||||
return __uao_rw(uao, off, dst, len, false);
|
||||
|
|
|
@ -27,6 +27,8 @@ int shmem_write(struct file *file, loff_t off, void *src, size_t len);
|
|||
|
||||
struct uvm_object *
|
||||
uao_create_from_object(struct drm_i915_gem_object *);
|
||||
int uao_read_to_iosys_map(struct uvm_object *, loff_t,
|
||||
struct iosys_map *, size_t, size_t);
|
||||
int uao_read(struct uvm_object *, loff_t, void *, size_t);
|
||||
int uao_write(struct uvm_object *, loff_t, void *, size_t);
|
||||
|
||||
|
|
|
@ -1314,9 +1314,6 @@ void intel_uc_fw_cleanup_fetch(struct intel_uc_fw *uc_fw)
|
|||
*/
|
||||
size_t intel_uc_fw_copy_rsa(struct intel_uc_fw *uc_fw, void *dst, u32 max_len)
|
||||
{
|
||||
STUB();
|
||||
return 0;
|
||||
#ifdef notyet
|
||||
struct intel_memory_region *mr = uc_fw->obj->mm.region;
|
||||
u32 size = min_t(u32, uc_fw->rsa_size, max_len);
|
||||
u32 offset = uc_fw->dma_start_offset + sizeof(struct uc_css_header) + uc_fw->ucode_size;
|
||||
|
@ -1330,7 +1327,7 @@ size_t intel_uc_fw_copy_rsa(struct intel_uc_fw *uc_fw, void *dst, u32 max_len)
|
|||
idx = offset >> PAGE_SHIFT;
|
||||
offset = offset_in_page(offset);
|
||||
if (i915_gem_object_has_struct_page(uc_fw->obj)) {
|
||||
struct page *page;
|
||||
struct vm_page *page;
|
||||
|
||||
for_each_sgt_page(page, iter, uc_fw->obj->mm.pages) {
|
||||
u32 len = min_t(u32, size, PAGE_SIZE - offset);
|
||||
|
@ -1379,7 +1376,6 @@ size_t intel_uc_fw_copy_rsa(struct intel_uc_fw *uc_fw, void *dst, u32 max_len)
|
|||
}
|
||||
|
||||
return count;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue