sync with OpenBSD -current

This commit is contained in:
purplerain 2024-03-22 03:21:02 +00:00
parent ffd019c293
commit 5c4b291e07
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
28 changed files with 116 additions and 226 deletions

View file

@ -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");

View file

@ -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);

View file

@ -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);

View file

@ -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
}
/**