Skip to contentSkip to conversation

rivafb/nvidiafb: Enable hardware monitoring

PATCH Superseded Antonino A. Daplas 2 participants 5 messages Apr 9, 2007 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 2/7 rivafb/nvidiafb: Enable hardware monitoring

From: Jean Delvare <khali@linux-fr>

Let the hardware monitoring drivers probe the second rivafb/nvidiafb I2C bus for devices.

---

 drivers/video/nvidia/nv_i2c.c   |   10 ++++++----
 drivers/video/riva/rivafb-i2c.c |   10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)
drivers/video/nvidia/nv_i2c.c +6 -4
index bcde013..2674259 100644
@@ -86,13 +86,15 @@ static int nvidia_gpio_getsda(void *data
 	return val;
 }
 
-static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name)
+static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
+				unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner = THIS_MODULE;
 	chan->adapter.id = I2C_HW_B_NVIDIA;
+	chan->adapter.class = i2c_class;
 	chan->adapter.algo_data = &chan->algo;
 	chan->adapter.dev.parent = &chan->par->pci_dev->dev;
 	chan->algo.setsda = nvidia_gpio_setsda;
@@ -132,13 +134,13 @@ void nvidia_create_i2c_busses(struct nvi
 	par->chan[2].par = par;
 
 	par->chan[0].ddc_base = 0x36;
-	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0");
+ 	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0", I2C_CLASS_HWMON);
 
 	par->chan[1].ddc_base = 0x3e;
-	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1");
+ 	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #0", 1);
 
 	par->chan[2].ddc_base = 0x50;
-	nvidia_setup_i2c_bus(&par->chan[2], "nvidia #2");
+ 	nvidia_setup_i2c_bus(&par->chan[2], "nvidia #2", 0);
 }
 
 void nvidia_delete_i2c_busses(struct nvidia_par *par)
drivers/video/riva/rivafb-i2c.c +6 -4
index 0405e83..ca9e7e8 100644
@@ -88,13 +88,15 @@ static int riva_gpio_getsda(void* data)
 	return val;
 }
 
-static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name)
+static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name,
+			      unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner		= THIS_MODULE;
 	chan->adapter.id		= I2C_HW_B_RIVA;
+	chan->adapter.class		= i2c_class;
 	chan->adapter.algo_data		= &chan->algo;
 	chan->adapter.dev.parent	= &chan->par->pdev->dev;
 	chan->algo.setsda		= riva_gpio_setsda;
@@ -135,9 +137,9 @@ void riva_create_i2c_busses(struct riva_
 	par->chan[0].ddc_base = 0x3e;
 	par->chan[1].ddc_base = 0x36;
 	par->chan[2].ddc_base = 0x50;
-	riva_setup_i2c_bus(&par->chan[0], "BUS1");
-	riva_setup_i2c_bus(&par->chan[1], "BUS2");
-	riva_setup_i2c_bus(&par->chan[2], "BUS3");
+	riva_setup_i2c_bus(&par->chan[0], "BUS1", 0);
+	riva_setup_i2c_bus(&par->chan[1], "BUS2", I2C_CLASS_HWMON);
+	riva_setup_i2c_bus(&par->chan[2], "BUS3", 0);
 }
 
 void riva_delete_i2c_busses(struct riva_par *par)

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#1 lore raw

Hi Antonino,

Quoted 35 lines · Antonino A. Daplas

From: Jean Delvare <khali@linux-fr>

Let the hardware monitoring drivers probe the second rivafb/nvidiafb I2C bus for devices.

---

 drivers/video/nvidia/nv_i2c.c   |   10 ++++++----
 drivers/video/riva/rivafb-i2c.c |   10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)
drivers/video/nvidia/nv_i2c.c +3 -1
index bcde013..2674259 100644
@@ -86,13 +86,15 @@ static int nvidia_gpio_getsda(void *data
 	return val;
 }
 
-static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name)
+static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
+				unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner = THIS_MODULE;
 	chan->adapter.id = I2C_HW_B_NVIDIA;
+	chan->adapter.class = i2c_class;
 	chan->adapter.algo_data = &chan->algo;
 	chan->adapter.dev.parent = &chan->par->pci_dev->dev;
 	chan->algo.setsda = nvidia_gpio_setsda;

drivers/video/nvidia/nv_i2c.c void nvidia_create_i2c_busses(struct nvi · line 140

Quoted 9 lines
drivers/video/nvidia/nv_i2c.c +2 -2
@@ -132,13 +134,13 @@ void nvidia_create_i2c_busses(struct nvi
 	par->chan[2].par = par;
 
 	par->chan[0].ddc_base = 0x36;
-	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0");
+ 	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0", I2C_CLASS_HWMON);
 
 	par->chan[1].ddc_base = 0x3e;
-	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1");
+ 	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #0", 1);

Err, this is not correct, and not what my original patch did.

Quoted 41 lines
drivers/video/nvidia/nv_i2c.c +1 -1
 	par->chan[2].ddc_base = 0x50;
-	nvidia_setup_i2c_bus(&par->chan[2], "nvidia #2");
+ 	nvidia_setup_i2c_bus(&par->chan[2], "nvidia #2", 0);
 }
 
 void nvidia_delete_i2c_busses(struct nvidia_par *par)
drivers/video/riva/rivafb-i2c.c +6 -4
index 0405e83..ca9e7e8 100644
@@ -88,13 +88,15 @@ static int riva_gpio_getsda(void* data)
 	return val;
 }
 
-static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name)
+static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name,
+			      unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner		= THIS_MODULE;
 	chan->adapter.id		= I2C_HW_B_RIVA;
+	chan->adapter.class		= i2c_class;
 	chan->adapter.algo_data		= &chan->algo;
 	chan->adapter.dev.parent	= &chan->par->pdev->dev;
 	chan->algo.setsda		= riva_gpio_setsda;
@@ -135,9 +137,9 @@ void riva_create_i2c_busses(struct riva_
 	par->chan[0].ddc_base = 0x3e;
 	par->chan[1].ddc_base = 0x36;
 	par->chan[2].ddc_base = 0x50;
-	riva_setup_i2c_bus(&par->chan[0], "BUS1");
-	riva_setup_i2c_bus(&par->chan[1], "BUS2");
-	riva_setup_i2c_bus(&par->chan[2], "BUS3");
+	riva_setup_i2c_bus(&par->chan[0], "BUS1", 0);
+	riva_setup_i2c_bus(&par->chan[1], "BUS2", I2C_CLASS_HWMON);
+	riva_setup_i2c_bus(&par->chan[2], "BUS3", 0);
 }
 
 void riva_delete_i2c_busses(struct riva_par *par)
Signature · 7 lines
Jean Delvare

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
#2 lore raw
Quoted 44 lines · Jean Delvare

Hi Antonino,

Quoted 41 lines · Antonino A. Daplas

From: Jean Delvare <khali@linux-fr>

Let the hardware monitoring drivers probe the second rivafb/nvidiafb I2C bus for devices.

---

 drivers/video/nvidia/nv_i2c.c   |   10 ++++++----
 drivers/video/riva/rivafb-i2c.c |   10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)
drivers/video/nvidia/nv_i2c.c +4 -2
index bcde013..2674259 100644
@@ -86,13 +86,15 @@ static int nvidia_gpio_getsda(void *data
 	return val;
 }
 
-static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name)
+static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
+				unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner = THIS_MODULE;
 	chan->adapter.id = I2C_HW_B_NVIDIA;
+	chan->adapter.class = i2c_class;
 	chan->adapter.algo_data = &chan->algo;
 	chan->adapter.dev.parent = &chan->par->pci_dev->dev;
 	chan->algo.setsda = nvidia_gpio_setsda;
@@ -132,13 +134,13 @@ void nvidia_create_i2c_busses(struct nvi
 	par->chan[2].par = par;
 
 	par->chan[0].ddc_base = 0x36;
-	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0");
+ 	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0", I2C_CLASS_HWMON);
 
Quoted 5 lines

drivers/video/nvidia/nv_i2c.c void nvidia_create_i2c_busses(struct nvi · line 140

Quoted 3 lines
drivers/video/nvidia/nv_i2c.c +1 -1
 	par->chan[1].ddc_base = 0x3e;
-	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1");
+ 	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #0", 1);

Err, this is not correct, and not what my original patch did.

I submitted a previous patch to akpm where I reversed the order of assignment of the ddc_bases (from 0x3e, 0x36 to 0x36, 0x3e). Just made your patch match that.

Tony

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#3 lore raw
In reply to Jean Delvare
Quoted 44 lines · Jean Delvare

Hi Antonino,

Quoted 41 lines · Antonino A. Daplas

From: Jean Delvare <khali@linux-fr>

Let the hardware monitoring drivers probe the second rivafb/nvidiafb I2C bus for devices.

---

 drivers/video/nvidia/nv_i2c.c   |   10 ++++++----
 drivers/video/riva/rivafb-i2c.c |   10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)
drivers/video/nvidia/nv_i2c.c +4 -2
index bcde013..2674259 100644
@@ -86,13 +86,15 @@ static int nvidia_gpio_getsda(void *data
 	return val;
 }
 
-static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name)
+static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
+				unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner = THIS_MODULE;
 	chan->adapter.id = I2C_HW_B_NVIDIA;
+	chan->adapter.class = i2c_class;
 	chan->adapter.algo_data = &chan->algo;
 	chan->adapter.dev.parent = &chan->par->pci_dev->dev;
 	chan->algo.setsda = nvidia_gpio_setsda;
@@ -132,13 +134,13 @@ void nvidia_create_i2c_busses(struct nvi
 	par->chan[2].par = par;
 
 	par->chan[0].ddc_base = 0x36;
-	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0");
+ 	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0", I2C_CLASS_HWMON);
 
Quoted 5 lines

drivers/video/nvidia/nv_i2c.c void nvidia_create_i2c_busses(struct nvi · line 140

Quoted 3 lines
drivers/video/nvidia/nv_i2c.c +1 -1
 	par->chan[1].ddc_base = 0x3e;
-	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1");
+ 	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #0", 1);

Err, this is not correct, and not what my original patch did.

Oops, yeah, I just made a typo :-(. I will submit a follow-up patch.

Tony

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#4 lore raw

PATCH RESEND 2/7 rivafb/nvidiafb: Enable hardware monitoring

In reply to Jean Delvare

From: Jean Delvare <khali@linux-fr>

Let the hardware monitoring drivers probe the second rivafb/nvidiafb I2C bus for devices.

---

Quoted 5 lines

Review

Quoted 3 lines
	par->chan[1].ddc_base = 0x3e;
(quoted diff) +1 -1
-	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1");
+ 	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #0", 1);

Err, this is not correct, and not what my original patch did.

Andrew, please use this instead. Fixes a stupid typo I made.

Tony

 drivers/video/nvidia/nv_i2c.c   |   10 ++++++----
 drivers/video/riva/rivafb-i2c.c |   10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)
drivers/video/nvidia/nv_i2c.c +6 -4
index bcde013..badc1a6 100644
@@ -86,13 +86,15 @@ static int nvidia_gpio_getsda(void *data
 	return val;
 }
 
-static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name)
+static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
+				unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner = THIS_MODULE;
 	chan->adapter.id = I2C_HW_B_NVIDIA;
+	chan->adapter.class = i2c_class;
 	chan->adapter.algo_data = &chan->algo;
 	chan->adapter.dev.parent = &chan->par->pci_dev->dev;
 	chan->algo.setsda = nvidia_gpio_setsda;
@@ -132,13 +134,13 @@ void nvidia_create_i2c_busses(struct nvi
 	par->chan[2].par = par;
 
 	par->chan[0].ddc_base = 0x36;
-	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0");
+ 	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0", I2C_CLASS_HWMON);
 
 	par->chan[1].ddc_base = 0x3e;
-	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1");
+ 	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1", 0);
 
 	par->chan[2].ddc_base = 0x50;
-	nvidia_setup_i2c_bus(&par->chan[2], "nvidia #2");
+ 	nvidia_setup_i2c_bus(&par->chan[2], "nvidia #2", 0);
 }
 
 void nvidia_delete_i2c_busses(struct nvidia_par *par)
drivers/video/riva/rivafb-i2c.c +6 -4
index 0405e83..ca9e7e8 100644
@@ -88,13 +88,15 @@ static int riva_gpio_getsda(void* data)
 	return val;
 }
 
-static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name)
+static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name,
+			      unsigned int i2c_class)
 {
 	int rc;
 
 	strcpy(chan->adapter.name, name);
 	chan->adapter.owner		= THIS_MODULE;
 	chan->adapter.id		= I2C_HW_B_RIVA;
+	chan->adapter.class		= i2c_class;
 	chan->adapter.algo_data		= &chan->algo;
 	chan->adapter.dev.parent	= &chan->par->pdev->dev;
 	chan->algo.setsda		= riva_gpio_setsda;
@@ -135,9 +137,9 @@ void riva_create_i2c_busses(struct riva_
 	par->chan[0].ddc_base = 0x3e;
 	par->chan[1].ddc_base = 0x36;
 	par->chan[2].ddc_base = 0x50;
-	riva_setup_i2c_bus(&par->chan[0], "BUS1");
-	riva_setup_i2c_bus(&par->chan[1], "BUS2");
-	riva_setup_i2c_bus(&par->chan[2], "BUS3");
+	riva_setup_i2c_bus(&par->chan[0], "BUS1", 0);
+	riva_setup_i2c_bus(&par->chan[1], "BUS2", I2C_CLASS_HWMON);
+	riva_setup_i2c_bus(&par->chan[2], "BUS3", 0);
 }
 
 void riva_delete_i2c_busses(struct riva_par *par)

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV