mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Problem: screen partially garbled in i830m (regression)
@ 2007-09-12 12:03 Michael Haas
  2007-09-12 14:00 ` Dave Airlie
  2007-09-12 14:08 ` Dave Airlie
  0 siblings, 2 replies; 4+ messages in thread
From: Michael Haas @ 2007-09-12 12:03 UTC (permalink / raw)
  To: linux-kernel; +Cc: airlied

[-- Attachment #1: Type: text/plain, Size: 2937 bytes --]

Hello list,

I sent this mail to David Airlie two weeks ago but I haven't gotten a
reply so far, that's why I'm posting to LKML this time.  Short summary:
874808c6dd429f7431b906a32c7f78a68e7636af broke intel_agp.ko for me, I'm
getting a garbled screen.


--------------------------------

Hello David,

with recent kernels, there seems to be a problem with agpgart for my
i830m chipset. The upper part of the screen is garbled, e.g. I can make
out parts of the image that is to be displayed, but it's chopped and
repeated. The box with which I'm having this problem is a not a regular
PC, but a x86-based set top box called S100. It's got a fanless Celeron
733 MHz and 128M RAM and it's somewhat popular due to its cheapness.
Just makes a nice living-room computer :)  I'll attach the output of
lspci -vvv.
FYI, I'm not using the official X.org driver but its IEGD counterpart.
Unfortunately, the S100 comes with a TV-out encoder chip that's only
supported by their closed source driver. Since the kernel is not tainted
by that, it shouldn't be a problem - similar problems also occur with
X.org drivers.

With working kernels, I'd get the following messages in dmesg:

<--snip-->
[   40.188375] agpgart: Detected an Intel 830M Chipset.
[   40.188741] agpgart: Detected 380K stolen memory.
[   40.199908] agpgart: AGP aperture is 128M @ 0xf0000000
<--snap-->

A broken kernel will result in the following messages:

<--snip-->
Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.941473] Linux agpgart
interface v0.102 (c) Dave Jones
Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.957021] agpgart:
Detected an Intel 830M Chipset.
Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.957605] agpgart: No
pre-allocated video memory detected.
Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.968696] agpgart: AGP
aperture is 128M @ 0xf0000000
<--snap-->

I used git-bisect to narrow down change that introduced this problem and
came up with this:

<--snip-->

874808c6dd429f7431b906a32c7f78a68e7636af is first bad commit
commit 874808c6dd429f7431b906a32c7f78a68e7636af
Author: Wang Zhenyu <zhenyu.z.wang@intel.com>
Date:   Wed Jun 6 11:16:25 2007 +0800

  [AGPGART] intel_agp: Add support for G33, Q33 and Q35 chipsets

  This patch adds pci ids for G33, Q33 and Q35 chips, and update with new
  GTT size and stolen mem size detect method on these chips.

  Signed-off-by: Wang Zhenyu <zhenyu.z.wang@intel.com>
  Signed-off-by: Dave Jones <davej@redhat.com>

:040000 040000 39b18b6860f139cb28a80020dc9347314753e16d
da24fb8672087cdfe6509cd1d4cb189534f887d6 M  drivers
<--snap-->

Particulary, there's a change to agp.h:

<--snip-->
-#define I830_GMCH_GMS_MASK  0x70
+#define I830_GMCH_GMS_MASK  0xF0
<--snap-->

I reverted this change in my git tree and I'm now running
2.6.23-rc3-gb377fd39-dirty without any distortion at all. Do you think
this can be fixed? I'll be glad to provide more Information. Thank you
for your time!


Regards,

Michael





[-- Attachment #2: lspci-verbose.txt --]
[-- Type: text/plain, Size: 7863 bytes --]

00:00.0 Host bridge: Intel Corporation 82830 830 Chipset Host Bridge (rev 04)
	Subsystem: Unknown device 7065:8086
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
	Latency: 0
	Region 0: Memory at <unassigned> (32-bit, prefetchable)
	Capabilities: [40] Vendor Specific Information

00:02.0 VGA compatible controller: Intel Corporation 82830 CGC [Chipset Graphics Controller] (rev 04) (prog-if 00 [VGA])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Interrupt: pin A routed to IRQ 0
	Region 0: Memory at f0000000 (32-bit, prefetchable) [size=128M]
	Region 1: Memory at ffa80000 (32-bit, non-prefetchable) [size=512K]
	Capabilities: [d0] Power Management version 1
		Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.1 Display controller: Intel Corporation 82830 CGC [Chipset Graphics Controller]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Region 0: Memory at e8000000 (32-bit, prefetchable) [size=128M]
	Region 1: Memory at ff980000 (32-bit, non-prefetchable) [size=512K]
	Capabilities: [d0] Power Management version 1
		Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02) (prog-if 00 [UHCI])
	Subsystem: Intel Corporation Unknown device 24c0
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Interrupt: pin A routed to IRQ 7
	Region 4: I/O ports at e000 [size=32]

00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02) (prog-if 00 [UHCI])
	Subsystem: Intel Corporation Unknown device 24c0
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Interrupt: pin B routed to IRQ 5
	Region 4: I/O ports at e080 [size=32]

00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02) (prog-if 00 [UHCI])
	Subsystem: Intel Corporation Unknown device 24c0
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Interrupt: pin C routed to IRQ 9
	Region 4: I/O ports at e400 [size=32]

00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 02) (prog-if 20 [EHCI])
	Subsystem: Intel Corporation Unknown device 24c0
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Interrupt: pin D routed to IRQ 10
	Region 0: Memory at ffa7f400 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Debug port

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 82) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR+
	Latency: 0
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
	I/O behind bridge: 0000d000-0000dfff
	Memory behind bridge: ff700000-ff7fffff
	Prefetchable memory behind bridge: fff00000-000fffff
	Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-

00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (rev 02)
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0

00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 02) (prog-if 8a [Master SecP PriP])
	Subsystem: Intel Corporation Unknown device 24c0
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Interrupt: pin A routed to IRQ 9
	Region 0: I/O ports at 01f0 [size=8]
	Region 1: I/O ports at 03f4 [size=1]
	Region 2: I/O ports at 0170 [size=8]
	Region 3: I/O ports at 0374 [size=1]
	Region 4: I/O ports at ffa0 [size=16]
	Region 5: Memory at 10000000 (32-bit, non-prefetchable) [size=1K]

00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 02)
	Subsystem: Intel Corporation Unknown device 24c0
	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Interrupt: pin B routed to IRQ 11
	Region 4: I/O ports at e480 [size=32]

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
	Subsystem: Intel Corporation Unknown device 24c0
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Interrupt: pin B routed to IRQ 11
	Region 0: I/O ports at e800 [size=256]
	Region 1: I/O ports at ec00 [size=64]
	Region 2: Memory at ffa7fc00 (32-bit, non-prefetchable) [size=512]
	Region 3: Memory at ffa7f800 (32-bit, non-prefetchable) [size=256]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
	Subsystem: Realtek Semiconductor Co., Ltd. RT8139
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64 (8000ns min, 16000ns max)
	Interrupt: pin A routed to IRQ 11
	Region 0: I/O ports at d800 [size=256]
	Region 1: Memory at ff7fdc00 (32-bit, non-prefetchable) [size=256]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:07.0 Network controller: Intel Corporation PRO/Wireless 2915ABG Network Connection (rev 05)
	Subsystem: Hewlett-Packard Company Unknown device 1354
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Interrupt: pin A routed to IRQ 5
	Region 0: Memory at ff7ff000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [dc] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=1 PME-


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Problem: screen partially garbled in i830m (regression)
  2007-09-12 12:03 Problem: screen partially garbled in i830m (regression) Michael Haas
@ 2007-09-12 14:00 ` Dave Airlie
  2007-09-12 14:08 ` Dave Airlie
  1 sibling, 0 replies; 4+ messages in thread
From: Dave Airlie @ 2007-09-12 14:00 UTC (permalink / raw)
  To: Michael Haas; +Cc: linux-kernel

>
> I sent this mail to David Airlie two weeks ago but I haven't gotten a
> reply so far, that's why I'm posting to LKML this time.  Short summary:
> 874808c6dd429f7431b906a32c7f78a68e7636af broke intel_agp.ko for me, I'm
> getting a garbled screen.

I'm travelling, and I'll try and get Zhenyu to take a look at what he 
changed.. but he is also travelling...

We probably need two defines..

Dave.

>
>
> --------------------------------
>
> Hello David,
>
> with recent kernels, there seems to be a problem with agpgart for my
> i830m chipset. The upper part of the screen is garbled, e.g. I can make
> out parts of the image that is to be displayed, but it's chopped and
> repeated. The box with which I'm having this problem is a not a regular
> PC, but a x86-based set top box called S100. It's got a fanless Celeron
> 733 MHz and 128M RAM and it's somewhat popular due to its cheapness.
> Just makes a nice living-room computer :)  I'll attach the output of
> lspci -vvv.
> FYI, I'm not using the official X.org driver but its IEGD counterpart.
> Unfortunately, the S100 comes with a TV-out encoder chip that's only
> supported by their closed source driver. Since the kernel is not tainted
> by that, it shouldn't be a problem - similar problems also occur with
> X.org drivers.
>
> With working kernels, I'd get the following messages in dmesg:
>
> <--snip-->
> [   40.188375] agpgart: Detected an Intel 830M Chipset.
> [   40.188741] agpgart: Detected 380K stolen memory.
> [   40.199908] agpgart: AGP aperture is 128M @ 0xf0000000
> <--snap-->
>
> A broken kernel will result in the following messages:
>
> <--snip-->
> Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.941473] Linux agpgart
> interface v0.102 (c) Dave Jones
> Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.957021] agpgart:
> Detected an Intel 830M Chipset.
> Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.957605] agpgart: No
> pre-allocated video memory detected.
> Jul 25 16:29:42 mythbuntu-alpha2 kernel: [   44.968696] agpgart: AGP
> aperture is 128M @ 0xf0000000
> <--snap-->
>
> I used git-bisect to narrow down change that introduced this problem and
> came up with this:
>
> <--snip-->
>
> 874808c6dd429f7431b906a32c7f78a68e7636af is first bad commit
> commit 874808c6dd429f7431b906a32c7f78a68e7636af
> Author: Wang Zhenyu <zhenyu.z.wang@intel.com>
> Date:   Wed Jun 6 11:16:25 2007 +0800
>
>  [AGPGART] intel_agp: Add support for G33, Q33 and Q35 chipsets
>
>  This patch adds pci ids for G33, Q33 and Q35 chips, and update with new
>  GTT size and stolen mem size detect method on these chips.
>
>  Signed-off-by: Wang Zhenyu <zhenyu.z.wang@intel.com>
>  Signed-off-by: Dave Jones <davej@redhat.com>
>
> :040000 040000 39b18b6860f139cb28a80020dc9347314753e16d
> da24fb8672087cdfe6509cd1d4cb189534f887d6 M  drivers
> <--snap-->
>
> Particulary, there's a change to agp.h:
>
> <--snip-->
> -#define I830_GMCH_GMS_MASK  0x70
> +#define I830_GMCH_GMS_MASK  0xF0
> <--snap-->
>
> I reverted this change in my git tree and I'm now running
> 2.6.23-rc3-gb377fd39-dirty without any distortion at all. Do you think
> this can be fixed? I'll be glad to provide more Information. Thank you
> for your time!
>
>
> Regards,
>
> Michael
>
>
>
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Problem: screen partially garbled in i830m (regression)
  2007-09-12 12:03 Problem: screen partially garbled in i830m (regression) Michael Haas
  2007-09-12 14:00 ` Dave Airlie
@ 2007-09-12 14:08 ` Dave Airlie
  2007-09-15 10:36   ` Michael Haas
  1 sibling, 1 reply; 4+ messages in thread
From: Dave Airlie @ 2007-09-12 14:08 UTC (permalink / raw)
  To: Michael Haas; +Cc: linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 215 bytes --]

> reply so far, that's why I'm posting to LKML this time.  Short summary:
> 874808c6dd429f7431b906a32c7f78a68e7636af broke intel_agp.ko for me, I'm
> getting a garbled screen.

Can you try the attached patch?

Dave.

[-- Attachment #2: Type: TEXT/x-diff, Size: 1729 bytes --]

From 56e5b226de1406812bbe739caad0d2a93f8c596d Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@linux.ie>
Date: Thu, 13 Sep 2007 00:08:01 +1000
Subject: [PATCH] intel-agp: Fix i830 mask variable that changed with G33 support

The mask on i830 should be 0x70 always, later chips 0xF0 should be okay.

Signed-off-by: Dave Airlie <airlied@linux.ie>
---
 drivers/char/agp/agp.h       |    3 ++-
 drivers/char/agp/intel-agp.c |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/char/agp/agp.h b/drivers/char/agp/agp.h
index 35ab1a9..8955e7f 100644
--- a/drivers/char/agp/agp.h
+++ b/drivers/char/agp/agp.h
@@ -176,7 +176,7 @@ struct agp_bridge_data {
 #define I830_GMCH_MEM_MASK		0x1
 #define I830_GMCH_MEM_64M		0x1
 #define I830_GMCH_MEM_128M		0
-#define I830_GMCH_GMS_MASK		0xF0
+#define I830_GMCH_GMS_MASK		0x70
 #define I830_GMCH_GMS_DISABLED		0x00
 #define I830_GMCH_GMS_LOCAL		0x10
 #define I830_GMCH_GMS_STOLEN_512	0x20
@@ -190,6 +190,7 @@ struct agp_bridge_data {
 #define INTEL_I830_ERRSTS	0x92
 
 /* Intel 855GM/852GM registers */
+#define I855_GMCH_GMS_MASK		0xF0
 #define I855_GMCH_GMS_STOLEN_0M		0x0
 #define I855_GMCH_GMS_STOLEN_1M		(0x1 << 4)
 #define I855_GMCH_GMS_STOLEN_4M		(0x2 << 4)
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index 2c9ca2c..c15f5d2 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -506,7 +506,7 @@ static void intel_i830_init_gtt_entries(void)
 			break;
 		}
 	} else {
-		switch (gmch_ctrl & I830_GMCH_GMS_MASK) {
+		switch (gmch_ctrl & I855_GMCH_GMS_MASK) {
 		case I855_GMCH_GMS_STOLEN_1M:
 			gtt_entries = MB(1) - KB(size);
 			break;
-- 
1.5.2.5


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Problem: screen partially garbled in i830m (regression)
  2007-09-12 14:08 ` Dave Airlie
@ 2007-09-15 10:36   ` Michael Haas
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Haas @ 2007-09-15 10:36 UTC (permalink / raw)
  To: Dave Airlie, linux-kernel

Dave Airlie wrote:
>> reply so far, that's why I'm posting to LKML this time.  Short summary:
>> 874808c6dd429f7431b906a32c7f78a68e7636af broke intel_agp.ko for me, I'm
>> getting a garbled screen.
> 
> Can you try the attached patch?
> 

Hello David,

I haven't been able to try your patch yet. However, two nice people from
the zenega-user forum ("hemonu" and "scythe") tried the patch. It fixed
the garbled screen problem for them.

If that's not good enough for you or if you need additional information,
I can try it myself.

Thanks for your prompt reply!

Michael

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-09-15 10:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-12 12:03 Problem: screen partially garbled in i830m (regression) Michael Haas
2007-09-12 14:00 ` Dave Airlie
2007-09-12 14:08 ` Dave Airlie
2007-09-15 10:36   ` Michael Haas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome