Displaying 4 results from an estimated 4 matches for "dcb_i2c_entry".
2015 Feb 22
0
[PATCH] Fix i2c table parsing for dcb 4.1
...insertions(+), 1 deletion(-)
diff --git a/drm/nouveau/nvkm/subdev/bios/i2c.c b/drm/nouveau/nvkm/subdev/bios/i2c.c
index d1a89b2..c4e1f08 100644
--- a/drm/nouveau/nvkm/subdev/bios/i2c.c
+++ b/drm/nouveau/nvkm/subdev/bios/i2c.c
@@ -74,7 +74,11 @@ dcb_i2c_parse(struct nvkm_bios *bios, u8 idx, struct dcb_i2c_entry *info)
u16 ent = dcb_i2c_entry(bios, idx, &ver, &len);
if (ent) {
if (ver >= 0x41) {
- if (!(nv_ro32(bios, ent) & 0x80000000))
+ u32 ent_value = nv_ro32(bios, ent);
+ u8 i2c_port = (ent_value >> 27) & 0x1f;
+ u8 dpaux_port = (ent_value >> 22) & 0x1f...
2012 Sep 22
1
[PATCH] drm/nouveau/i2c: correct default settings for i2c ports
...u/drm/nouveau/core/subdev/bios/i2c.c b/drivers/gpu/drm/nouveau/core/subdev/bios/i2c.c
index 5fcce5d..ad577db 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/bios/i2c.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/bios/i2c.c
@@ -112,13 +112,13 @@ dcb_i2c_parse(struct nouveau_bios *bios, u8 idx, struct dcb_i2c_entry *info)
info->drive = nv_ro08(bios, ent + 4);
if (!info->drive) info->drive = 0x3f;
info->sense = nv_ro08(bios, ent + 5);
- if (!info->sense) info->drive = 0x3e;
+ if (!info->sense) info->sense = 0x3e;
} else
if (idx == 1) {
info->drive = nv_ro08(...
2013 Aug 22
5
[Bug 68456] New: kernel NULL pointer dereference on 'modprobe nouveau'
...0
kernel: Call Trace:
kernel: [<ffffffffa026871a>] ? __i2c_bit_add_bus+0x2a/0x2b3 [i2c_algo_bit]
kernel: [<ffffffffa028ed5a>] ? nouveau_i2c_port_create_+0x136/0x18a [nouveau]
kernel: [<ffffffffa02900b4>] ? nv04_i2c_port_ctor+0x2b/0x5c [nouveau]
kernel: [<ffffffffa027fa84>] ? dcb_i2c_entry+0x24/0x48 [nouveau]
kernel: [<ffffffffa027b00f>] ? nouveau_object_ctor+0x2b/0xb7 [nouveau]
kernel: [<ffffffffa028f030>] ? nouveau_i2c_create_+0xce/0x1de [nouveau]
kernel: [<ffffffffa0279ad3>] ? nouveau_event_create+0x1d/0x5e [nouveau]
kernel: [<ffffffffa029007b>] ? nv04_i2c_...
2009 Nov 19
2
[RFC] nouveau: Add basic i2c sensor chip support
...tabptr];
- if (bdcb->version >= 0x30)
+ if (bdcb->version >= 0x30) {
+ int address;
+
bdcb->i2c_default_indices = bdcb->i2c_table[4];
+
+ if (dev_priv->card_type < NV_50)
+ address = 0x2;
+ else
+ address = bdcb->i2c_default_indices & 0xf;
+
+ read_dcb_i2c_entry(dev, bdcb->version, bdcb->i2c_table,
+ address, &bdcb->management_i2c);
+ }
}
if (entries > DCB_MAX_NUM_ENTRIES)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.h b/drivers/gpu/drm/nouveau/nouveau_bios.h
index 1ffda97..9584121 100644
--- a/drivers/gpu/drm/nouveau/nou...